Ignore:
Timestamp:
Oct 20, 2009, 8:52:15 PM (15 years ago)
Author:
rosiere
Message:

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop
Files:
1 added
88 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Execute_loop_Glue.h

    r88 r136  
    102102  public    : SC_OUT(Tspecial_address_t)   ** out_SPR_WRITE_READ_UNIT_NUM_REG            ;
    103103  public    : SC_OUT(Tspecial_data_t   )   ** out_SPR_WRITE_READ_UNIT_DATA               ;
     104
     105    // -----[ Interface "issue" ]-----------------------------------------
     106  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_VAL                              ;
     107  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_ACK                              ;
     108
     109  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_READ_UNIT_VAL                    ;
     110  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_READ_UNIT_ACK                    ;
     111
     112  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_REGISTER_UNIT_VAL                ;
     113  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_REGISTER_UNIT_ACK                ;
    104114   
    105115    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     
    144154  public  : void        genMealy_gpr_write        (void);
    145155  public  : void        genMealy_spr_write        (void);
     156  public  : void        genMealy_issue            (void);
    146157#endif                                         
    147158
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Parameters.h

    r88 r136  
    2525  public : uint32_t _nb_gpr_write           ;
    2626  public : uint32_t _nb_spr_write           ;
     27  public : uint32_t _nb_inst_issue          ;
    2728//public : uint32_t _size_ooo_engine_id     ;
    2829//public : uint32_t _size_general_register  ;
     
    3637  public : Parameters  (uint32_t nb_gpr_write           ,
    3738                        uint32_t nb_spr_write           ,
     39                        uint32_t nb_inst_issue          ,
    3840                        uint32_t size_ooo_engine_id     ,
    3941                        uint32_t size_general_register  ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue.cpp

    r132 r136  
    166166      }
    167167# endif   
     168
     169        log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> : Method - genMealy_issue"),_name.c_str());
     170
     171        SC_METHOD (genMealy_issue);
     172        dont_initialize ();
     173//      sensitive << (*(in_CLOCK)).neg();// don't need internal register
     174        for (uint32_t i=0; i<_param->_nb_inst_issue; ++i)
     175          sensitive << (*(in_ISSUE_VAL               [i]))
     176                    << (*(in_ISSUE_READ_UNIT_ACK     [i]))
     177                    << (*(in_ISSUE_REGISTER_UNIT_ACK [i]));
     178
     179# ifdef SYSTEMCASS_SPECIFIC
     180        // List dependency information
     181# endif   
    168182       
    169183#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_allocation.cpp

    r112 r136  
    132132    }
    133133
     134    // -----[ Interface "issue" ]-----------------------------------------
     135    {
     136      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST, _("Issue"), _param->_nb_inst_issue);
     137
     138      ALLOC1_SIGNAL_IN ( in_ISSUE_VAL              ,"val"              ,Tcontrol_t,1);
     139      ALLOC1_SIGNAL_OUT(out_ISSUE_ACK              ,"ack"              ,Tcontrol_t,1);
     140      ALLOC1_SIGNAL_OUT(out_ISSUE_READ_UNIT_VAL    ,"read_unit_val"    ,Tcontrol_t,1);
     141      ALLOC1_SIGNAL_IN ( in_ISSUE_READ_UNIT_ACK    ,"read_unit_ack"    ,Tcontrol_t,1);
     142      ALLOC1_SIGNAL_OUT(out_ISSUE_REGISTER_UNIT_VAL,"register_unit_val",Tcontrol_t,1);
     143      ALLOC1_SIGNAL_IN ( in_ISSUE_REGISTER_UNIT_ACK,"register_unit_ack",Tcontrol_t,1);
     144
     145      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
     146    }
     147
    134148    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    135149
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters.cpp

    r88 r136  
    2020  Parameters::Parameters (uint32_t nb_gpr_write           ,
    2121                          uint32_t nb_spr_write           ,
     22                          uint32_t nb_inst_issue          ,
    2223                          uint32_t size_ooo_engine_id     ,
    2324                          uint32_t size_general_register  ,
     
    3132    _nb_gpr_write            = nb_gpr_write           ;
    3233    _nb_spr_write            = nb_spr_write           ;
     34    _nb_inst_issue           = nb_inst_issue          ;
    3335//  _size_ooo_engine_id      = size_ooo_engine_id     ;
    3436//  _size_general_register   = size_general_register  ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters_print.cpp

    r88 r136  
    2828    xml.singleton_begin("nb_gpr_write         "); xml.attribut("value",toString(_nb_gpr_write         )); xml.singleton_end();
    2929    xml.singleton_begin("nb_spr_write         "); xml.attribut("value",toString(_nb_spr_write         )); xml.singleton_end();
     30    xml.singleton_begin("nb_inst_issue        "); xml.attribut("value",toString(_nb_inst_issue        )); xml.singleton_end();
    3031    xml.singleton_begin("size_ooo_engine_id   "); xml.attribut("value",toString(_size_ooo_engine_id   )); xml.singleton_end();
    3132    xml.singleton_begin("size_general_register"); xml.attribut("value",toString(_size_general_register)); xml.singleton_end();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h

    r128 r136  
    5252    Toperation_t       _operation   ;
    5353    Ttype_t            _type        ;
     54    Tcontrol_t         _cancel      ;
    5455    Tcontrol_t         _has_immediat;
    5556    Tgeneral_data_t    _immediat    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h

    r122 r136  
    8484  public    : SC_IN (Toperation_t      )    *  in_EXECUTE_IN_OPERATION      ;
    8585  public    : SC_IN (Ttype_t           )    *  in_EXECUTE_IN_TYPE           ;
     86  public    : SC_IN (Tcontrol_t        )    *  in_EXECUTE_IN_CANCEL         ;
    8687  public    : SC_IN (Tlsq_ptr_t        )    *  in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE;
    8788  public    : SC_IN (Tlsq_ptr_t        )    *  in_EXECUTE_IN_STORE_QUEUE_PTR_READ ;
     
    107108//public    : SC_OUT(Toperation_t      )    * out_EXECUTE_OUT_OPERATION      ;
    108109//public    : SC_OUT(Ttype_t           )    * out_EXECUTE_OUT_TYPE           ;
     110  public    : SC_OUT(Tcontrol_t        )    * out_EXECUTE_OUT_CANCEL         ;
    109111  public    : SC_OUT(Tcontrol_t        )    * out_EXECUTE_OUT_WRITE_RD       ;
    110112  public    : SC_OUT(Tgeneral_address_t)    * out_EXECUTE_OUT_NUM_REG_RD     ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp

    r122 r136  
    6262      ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_OPERATION             ,"operation"            ,Toperation_t      , _param->_size_operation    );
    6363      ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_TYPE                  ,"type"                 ,Ttype_t           , _param->_size_type         );
     64      ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_CANCEL                ,"cancel"               ,Tcontrol_t        , 1);
    6465      ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE ,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    6566      ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_STORE_QUEUE_PTR_READ  ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
     
    9091     //ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_OPERATION      ,"operation"    ,Toperation_t      ,_param->_size_operation    );
    9192     //ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_TYPE           ,"type"         ,Ttype_t           ,_param->_size_type         );
     93       ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_CANCEL         ,"cancel"       ,Tcontrol_t        ,1);
    9294       ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_WRITE_RD       ,"write_rd"     ,Tcontrol_t        ,1);
    9395       ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_NUM_REG_RD     ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp

    r128 r136  
    3838        DELETE0_SIGNAL( in_EXECUTE_IN_OPERATION             ,_param->_size_operation    );
    3939        DELETE0_SIGNAL( in_EXECUTE_IN_TYPE                  ,_param->_size_type         );
     40        DELETE0_SIGNAL( in_EXECUTE_IN_CANCEL                ,1);
    4041        DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE ,_param->_size_store_queue_ptr);
    4142        DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_READ  ,_param->_size_store_queue_ptr);
     
    6061      //DELETE0_SIGNAL(out_EXECUTE_OUT_OPERATION      ,_param->_size_operation    );
    6162      //DELETE0_SIGNAL(out_EXECUTE_OUT_TYPE           ,_param->_size_type         );
     63        DELETE0_SIGNAL(out_EXECUTE_OUT_CANCEL         ,1);
    6264        DELETE0_SIGNAL(out_EXECUTE_OUT_WRITE_RD       ,1);
    6365        DELETE0_SIGNAL(out_EXECUTE_OUT_NUM_REG_RD     ,_param->_size_general_register);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMoore.cpp

    r123 r136  
    3838  //  PORT_WRITE(out_EXECUTE_OUT_OPERATION    ,_execute_operation_out->_operation    );
    3939  //  PORT_WRITE(out_EXECUTE_OUT_TYPE         ,_execute_operation_out->_type         );
     40      PORT_WRITE(out_EXECUTE_OUT_CANCEL       ,_execute_operation_out->_cancel       );
    4041      PORT_WRITE(out_EXECUTE_OUT_WRITE_RD     ,_execute_operation_out->_write_rd     );
    4142      PORT_WRITE(out_EXECUTE_OUT_NUM_REG_RD   ,_execute_operation_out->_num_reg_rd   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp

    r134 r136  
    5555  //    _execute_operation_out->_operation     = 0; // not necessary
    5656  //    _execute_operation_out->_type          = 0; // not necessary
     57        _execute_operation_out->_cancel        = 0; // not necessary
    5758        _execute_operation_out->_write_rd      = 0; // not necessary
    5859        _execute_operation_out->_num_reg_rd    = 0; // not necessary
     
    8889            _execute_operation_out->_operation     = _execute_operation_in->_operation    ;
    8990            _execute_operation_out->_type          = _execute_operation_in->_type         ;
     91            _execute_operation_out->_cancel        = _execute_operation_in->_cancel       ;
    9092            _execute_operation_out->_has_immediat  = _execute_operation_in->_has_immediat ;
    9193            _execute_operation_out->_immediat      = _execute_operation_in->_immediat     ;
     
    130132            Toperation_t operation     = PORT_READ(in_EXECUTE_IN_OPERATION);
    131133            Ttype_t      type          = PORT_READ(in_EXECUTE_IN_TYPE);
     134            Tcontrol_t   cancel        = PORT_READ(in_EXECUTE_IN_CANCEL);
    132135
    133136            execute_operation->_context_id    = context_id   ;
     
    137140            execute_operation->_operation     = operation    ;
    138141            execute_operation->_type          = type         ;
     142            execute_operation->_cancel        = cancel       ;
    139143            execute_operation->_has_immediat  = PORT_READ(in_EXECUTE_IN_HAS_IMMEDIAT);
    140144            execute_operation->_immediat      = PORT_READ(in_EXECUTE_IN_IMMEDIAT    );
     
    158162            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * operation     : %d",execute_operation->_operation    );
    159163            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * type          : %s",toString(execute_operation->_type).c_str());
     164            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * cancel        : %d",execute_operation->_cancel       );
    160165            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * has_immediat  : %d",execute_operation->_has_immediat );
    161166            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * immediat      : %.8x",execute_operation->_immediat     );
  • 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

    r131 r136  
    104104  public    : SC_IN (Toperation_t      )   **  in_MEMORY_IN_OPERATION            ;//[nb_inst_memory]
    105105  public    : SC_IN (Ttype_t           )   **  in_MEMORY_IN_TYPE                 ;//[nb_inst_memory]
     106  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_CANCEL               ;//[nb_inst_memory]
    106107  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;//[nb_inst_memory]
    107108  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_READ ;//[nb_inst_memory]
     
    127128//public    : SC_OUT(Toperation_t      )   ** out_MEMORY_OUT_OPERATION           ;//[nb_inst_memory]
    128129//public    : SC_OUT(Ttype_t           )   ** out_MEMORY_OUT_TYPE                ;//[nb_inst_memory]
     130  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_CANCEL              ;//[nb_inst_memory]
    129131  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_WRITE_RD            ;//[nb_inst_memory] // = (operation==load)
    130132  public    : SC_OUT(Tgeneral_address_t)   ** out_MEMORY_OUT_NUM_REG_RD          ;//[nb_inst_memory] // destination (load)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Types.h

    r122 r136  
    6767  public    : Tpacket_t            _packet_id           ;
    6868  public    : Toperation_t         _operation           ;
     69  public    : Tcontrol_t           _cancel              ;
    6970  public    : Tlsq_ptr_t           _load_queue_ptr_write;
    7071  public    : Tdcache_address_t    _address             ;
     
    8081                << "   * packet                            : " << toString(x._packet_id) << std::endl
    8182                << "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
    82                 << "   * operation                         : " << toString(x._operation) << std::endl
     83                << "   * operation, cancel                 : " << toString(x._operation) << " - " << toString(x._cancel) << std::endl
    8384                << "   * load_ptr                          : " << toString(x._load_queue_ptr_write) << std::endl
    8485                << "   * exception                         : " << toString(x._exception) << std::endl
     
    111112  public    : Tpacket_t                          _packet_id            ;
    112113  public    : Toperation_t                       _operation            ;
     114  public    : Tcontrol_t                         _cancel               ;
    113115  public    : Tlsq_ptr_t                         _load_queue_ptr_write ;
    114116  public    : Tlsq_ptr_t                         _store_queue_ptr_write;
     
    125127                << "   * packet                            : " << toString(x._packet_id) << std::endl
    126128                << "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
    127                 << "   * operation                         : " << toString(x._operation) << std::endl
     129                << "   * operation, cancel                 : " << toString(x._operation) << " - " << toString(x._cancel) << std::endl
    128130                << "   * load, store ptr_(write/read) empty: " << toString(x._load_queue_ptr_write) << " - " << toString(x._store_queue_ptr_write) << " - " << toString(x._store_queue_ptr_read) << " - " << toString(x._store_queue_empty) << std::endl
    129131                << "   * exception                         : " << toString(x._exception) << std::endl
     
    168170  public    : Tpacket_t            _packet_id        ;
    169171  public    : Toperation_t         _operation        ;
     172  public    : Tcontrol_t           _cancel           ;
    170173  public    : Tlsq_ptr_t           _store_queue_ptr_write;
    171174  public    : Tlsq_ptr_t           _store_queue_ptr_read ;
     
    187190                << "   * packet                            : " << toString(x._packet_id) << std::endl
    188191                << "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
    189                 << "   * operation                         : " << toString(x._operation) << std::endl
     192                << "   * operation, cancel                 : " << toString(x._operation) << " - " << toString(x._cancel) << std::endl
    190193                << "   * store_queue ptr_(write,read) empty: " << toString(x._store_queue_ptr_write) << " - " << toString(x._store_queue_ptr_read) << " - " << toString(x._store_queue_empty) <<std::endl
    191194                << "   * exception                         : " << toString(x._exception) << std::endl
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_allocation.cpp

    r134 r136  
    6565      ALLOC1_SIGNAL_IN ( in_MEMORY_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation            );
    6666      ALLOC1_SIGNAL_IN ( in_MEMORY_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type                 );
     67      ALLOC1_SIGNAL_IN ( in_MEMORY_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1                                  );
    6768      ALLOC1_SIGNAL_IN ( in_MEMORY_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr      );
    6869      ALLOC1_SIGNAL_IN ( in_MEMORY_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr      );
     
    9495//    ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_OPERATION    ,"operation"     ,Toperation_t      ,_param->_size_operation        );
    9596//    ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_TYPE         ,"type"          ,Ttype_t           ,_param->_size_type             );
     97      ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_CANCEL       ,"cancel"        ,Tcontrol_t        ,1                              );
    9698      ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_WRITE_RD     ,"write_rd"      ,Tcontrol_t        ,1                              );
    9799      ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_NUM_REG_RD   ,"num_reg_rd"    ,Tgeneral_address_t,_param->_size_general_register );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_deallocation.cpp

    r134 r136  
    4444    DELETE1_SIGNAL( in_MEMORY_IN_OPERATION            ,_param->_nb_inst_memory,_param->_size_operation            );
    4545    DELETE1_SIGNAL( in_MEMORY_IN_TYPE                 ,_param->_nb_inst_memory,_param->_size_type                 );
     46    DELETE1_SIGNAL( in_MEMORY_IN_CANCEL               ,_param->_nb_inst_memory,1);
    4647    DELETE1_SIGNAL( in_MEMORY_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_memory,_param->_size_store_queue_ptr      );
    4748    DELETE1_SIGNAL( in_MEMORY_IN_STORE_QUEUE_PTR_READ ,_param->_nb_inst_memory,_param->_size_store_queue_ptr      );
     
    6667//  DELETE1_SIGNAL(out_MEMORY_OUT_OPERATION    ,_param->_nb_inst_memory,_param->_size_operation        );
    6768//  DELETE1_SIGNAL(out_MEMORY_OUT_TYPE         ,_param->_nb_inst_memory,_param->_size_type             );
     69    DELETE1_SIGNAL(out_MEMORY_OUT_CANCEL       ,_param->_nb_inst_memory,1                              );
    6870    DELETE1_SIGNAL(out_MEMORY_OUT_WRITE_RD     ,_param->_nb_inst_memory,1                              );
    6971    DELETE1_SIGNAL(out_MEMORY_OUT_NUM_REG_RD   ,_param->_nb_inst_memory,_param->_size_general_register );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_genMoore.cpp

    r123 r136  
    3535    Tcontext_t         memory_out_ooo_engine_id = 0;
    3636    Tpacket_t          memory_out_packet_id     = 0;
     37    Tcontrol_t         memory_out_cancel        = 0;
    3738    Tcontrol_t         memory_out_write_rd      = 0;
    3839    Tgeneral_address_t memory_out_num_reg_rd    = 0;
     
    6768            memory_out_ooo_engine_id = _load_queue [internal_MEMORY_OUT_PTR]._ooo_engine_id;
    6869            memory_out_packet_id     = _load_queue [internal_MEMORY_OUT_PTR]._packet_id ;
     70            memory_out_cancel        = _load_queue [internal_MEMORY_OUT_PTR]._cancel    ;
    6971            memory_out_write_rd      = _load_queue [internal_MEMORY_OUT_PTR]._write_rd  ;
    7072            memory_out_num_reg_rd    = _load_queue [internal_MEMORY_OUT_PTR]._num_reg_rd;
     
    130132                memory_out_ooo_engine_id = _store_queue [internal_MEMORY_OUT_PTR]._ooo_engine_id;
    131133                memory_out_packet_id     = _store_queue [internal_MEMORY_OUT_PTR]._packet_id ;
     134                memory_out_cancel        = _store_queue [internal_MEMORY_OUT_PTR]._cancel;
    132135//              memory_out_write_rd     
    133136//              memory_out_num_reg_rd   
     
    152155//  PORT_WRITE(out_MEMORY_OUT_OPERATION    [0], memory_out_operation    );
    153156//  PORT_WRITE(out_MEMORY_OUT_TYPE         [0], TYPE_MEMORY             );
     157    PORT_WRITE(out_MEMORY_OUT_CANCEL       [0], memory_out_cancel       );
    154158    PORT_WRITE(out_MEMORY_OUT_WRITE_RD     [0], memory_out_write_rd     );
    155159    PORT_WRITE(out_MEMORY_OUT_NUM_REG_RD   [0], memory_out_num_reg_rd   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_transition.cpp

    r134 r136  
    251251            _store_queue              [i]._packet_id             = 0; // not necessary
    252252            _store_queue              [i]._operation             = 0; // not necessary
     253            _store_queue              [i]._cancel                = 0; // not necessary
    253254            _store_queue              [i]._load_queue_ptr_write  = 0; // not necessary
    254255            _store_queue              [i]._address               = 0; // not necessary
     
    268269            _load_queue               [i]._packet_id             = 0; // not necessary
    269270            _load_queue               [i]._operation             = 0; // not necessary
     271            _load_queue               [i]._cancel                = 0; // not necessary
    270272            _load_queue               [i]._store_queue_ptr_write = 0; // not necessary
    271273            _load_queue               [i]._store_queue_ptr_read  = 0; // not necessary
     
    291293            _speculative_access_queue [i]._packet_id             = 0; // not necessary
    292294            _speculative_access_queue [i]._operation             = 0; // not necessary
     295            _speculative_access_queue [i]._cancel                = 0; // not necessary
    293296            _speculative_access_queue [i]._load_queue_ptr_write  = 0; // not necessary
    294297            _speculative_access_queue [i]._store_queue_ptr_write = 0; // not necessary
     
    815818#endif
    816819            Toperation_t    operation            = PORT_READ(in_MEMORY_IN_OPERATION[internal_MEMORY_IN_PORT]);
     820            Tcontrol_t      cancel               = PORT_READ(in_MEMORY_IN_CANCEL   [internal_MEMORY_IN_PORT]);
    817821            Tgeneral_data_t address              = (PORT_READ(in_MEMORY_IN_IMMEDIAT[internal_MEMORY_IN_PORT]) +
    818822                                                    PORT_READ(in_MEMORY_IN_DATA_RA [internal_MEMORY_IN_PORT]));
     
    925929                    _store_queue [index]._packet_id            = (not _param->_have_port_rob_ptr      )?0:PORT_READ(in_MEMORY_IN_PACKET_ID    [internal_MEMORY_IN_PORT]);
    926930                    _store_queue [index]._operation            = operation;
     931                    _store_queue [index]._cancel               = cancel   ;
    927932                    _store_queue [index]._load_queue_ptr_write = (not _param->_have_port_load_queue_ptr)?0:PORT_READ(in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
    928933                    _store_queue [index]._address              = address;
     
    965970
    966971                _speculative_access_queue [index]._operation            = operation;
     972                _speculative_access_queue [index]._cancel               = cancel   ;
    967973                _speculative_access_queue [index]._load_queue_ptr_write = (not _param->_have_port_load_queue_ptr)?0:PORT_READ(in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
    968974                _speculative_access_queue [index]._store_queue_ptr_write= PORT_READ(in_MEMORY_IN_STORE_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
     
    10941100            _load_queue [ptr_write]._packet_id             = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._packet_id;
    10951101            _load_queue [ptr_write]._operation             = operation;
     1102            _load_queue [ptr_write]._cancel                = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._cancel;
    10961103            _load_queue [ptr_write]._store_queue_ptr_write = store_queue_ptr_write;
    10971104            _load_queue [ptr_write]._store_queue_ptr_read  = store_queue_ptr_read ;
     
    12861293            uint32_t j = (reg_STORE_QUEUE_PTR_READ+i)%_param->_size_store_queue;
    12871294
    1288             log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d, %.8x %.8x, %.2d %.1d, %.2d %s",
     1295            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d, %.8x %.8x, %.2d %.1d, %.2d %s",
    12891296                       j,
    12901297                       _store_queue[j]._context_id          ,
     
    12931300                       _store_queue[j]._packet_id           ,
    12941301                       _store_queue[j]._operation           ,
     1302                       _store_queue[j]._cancel              ,
    12951303                       _store_queue[j]._load_queue_ptr_write,
    12961304                       _store_queue[j]._address             ,
     
    13111319            uint32_t j = (*_speculative_access_queue_control)[i];
    13121320
    1313             log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d %.4d %.4d %.1d, %.8x, %.1d %.4d, %.2d, %s",
     1321            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d %.4d %.4d %.1d, %.8x, %.1d %.4d, %.2d, %s",
    13141322                       j,
    13151323                       _speculative_access_queue[j]._context_id          ,
     
    13181326                       _speculative_access_queue[j]._packet_id           ,
    13191327                       _speculative_access_queue[j]._operation           ,
     1328                       _speculative_access_queue[j]._cancel              ,
    13201329                       _speculative_access_queue[j]._load_queue_ptr_write,
    13211330                       _speculative_access_queue[j]._store_queue_ptr_write,
     
    13371346            uint32_t j = i;
    13381347
    1339             log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d %.4d %.1d, %.8x %.1x %.1d %.2d %.1d %.2d, %.8x, %.1d %.4d, %.2d, %s",
     1348            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d %.4d %.1d, %.8x %.1x %.1d %.2d %.1d %.2d, %.8x, %.1d %.4d, %.2d, %s",
    13401349                       j,
    13411350                       _load_queue[j]._context_id          ,
     
    13441353                       _load_queue[j]._packet_id           ,
    13451354                       _load_queue[j]._operation           ,
     1355                       _load_queue[j]._cancel              ,
    13461356                       _load_queue[j]._store_queue_ptr_write,
    13471357                       _load_queue[j]._store_queue_ptr_read ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h

    r122 r136  
    7272  public    : SC_IN (Toperation_t      )    *  in_READ_QUEUE_IN_OPERATION            ;
    7373  public    : SC_IN (Ttype_t           )    *  in_READ_QUEUE_IN_TYPE                 ;
     74  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_CANCEL               ;
    7475  public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
    7576  public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ ;
     
    99100  public    : SC_OUT(Toperation_t      )    * out_READ_QUEUE_OUT_OPERATION            ;
    100101  public    : SC_OUT(Ttype_t           )    * out_READ_QUEUE_OUT_TYPE                 ;
     102  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_CANCEL               ;
    101103  public    : SC_OUT(Tlsq_ptr_t        )    * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
    102104  public    : SC_OUT(Tlsq_ptr_t        )    * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ ;
     
    105107  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_HAS_IMMEDIAT         ;
    106108  public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_IMMEDIAT             ;
    107 //   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RA              ;
     109//public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RA              ;
    108110  public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RA           ;
    109111  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RA_VAL          ;
    110112  public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RA              ;
    111 //   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RB              ;
     113//public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RB              ;
    112114  public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RB           ;
    113115  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RB_VAL          ;
    114116  public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RB              ;
    115 //   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RC              ;
     117//public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RC              ;
    116118  public    : SC_OUT(Tspecial_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RC           ;
    117119  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RC_VAL          ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h

    r122 r136  
    2828  public    : Toperation_t       _operation    ;
    2929  public    : Ttype_t            _type         ;
     30  public    : Tcontrol_t         _cancel       ;
    3031  public    : Tlsq_ptr_t         _store_queue_ptr_write;
    3132  public    : Tlsq_ptr_t         _store_queue_ptr_read ;
     
    5455                    << " * _operation             : " << toString(x._operation    ) << std::endl
    5556                    << " * _type                  : " << toString(x._type         ) << std::endl
     57                    << " * _cancel                : " << toString(x._cancel       ) << std::endl
    5658                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
    5759                    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
     
    8486  public    : Toperation_t       _operation    ;
    8587  public    : Ttype_t            _type         ;
     88  public    : Tcontrol_t         _cancel       ;
    8689  public    : Tlsq_ptr_t         _store_queue_ptr_write;
    8790  public    : Tlsq_ptr_t         _store_queue_ptr_read ;
     
    122125      _operation             = x._operation    ;
    123126      _type                  = x._type         ;
     127      _cancel                = x._cancel       ;
    124128      _store_queue_ptr_write = x._store_queue_ptr_write;
    125129      _store_queue_ptr_read  = x._store_queue_ptr_read ;
     
    164168                    << " * _operation             : " << x._operation    << std::endl
    165169                    << " * _type                  : " << x._type         << std::endl
     170                    << " * _cancel                : " << x._cancel       << std::endl
    166171                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
    167172                    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp

    r132 r136  
    1818
    1919
     20#undef  FUNCTION
     21#define FUNCTION "Read_queue::Read_queue"
    2022  Read_queue::Read_queue
    2123  (
     
    3436    ,_usage (usage)
    3537  {
    36     log_printf(FUNC,Read_queue,"Read_queue","Begin");
     38    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> Begin"),_name.c_str());
    3739
    3840// #if DEBUG_Read_queue == true
     
    4345
    4446#ifdef SYSTEMC
    45     log_printf(INFO,Read_queue,"Read_queue","Allocation");
     47    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4648
    4749    allocation ();
     
    5153    if (usage_is_set(_usage,USE_STATISTICS))
    5254      {
    53         log_printf(INFO,Read_queue,FUNCTION,"Allocation of statistics");
     55        log_printf(INFO,Read_queue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5456       
    5557        statistics_declaration(param_statistics);
     
    6163      {
    6264        // generate the vhdl
    63         log_printf(INFO,Read_queue,"Read_queue","Generate the vhdl");
     65        log_printf(INFO,Read_queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6466       
    6567        vhdl();
     
    7072    if (usage_is_set(_usage,USE_SYSTEMC))
    7173      {
    72     log_printf(INFO,Read_queue,"Read_queue","Method - transition");
     74    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7375
    7476    SC_METHOD (transition);
     
    7678    sensitive << (*(in_CLOCK)).pos();
    7779
    78     log_printf(INFO,Read_queue,"Read_queue","Method - genMoore");
     80    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
    7981
    8082    SC_METHOD (genMoore);
     
    8284    sensitive << (*(in_CLOCK)).neg();
    8385
    84     log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_val");
     86    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMealy_read_queue_out_val"),_name.c_str());
    8587
    8688    SC_METHOD (genMealy_read_queue_out_val);
     
    130132#endif   
    131133   
    132     log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_gpr");
     134    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMealy_read_queue_out_gpr"),_name.c_str());
    133135
    134136    SC_METHOD (genMealy_read_queue_out_gpr);
     
    183185#endif   
    184186
    185     log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_spr");
     187    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMealy_read_queue_out_spr"),_name.c_str());
    186188
    187189    SC_METHOD (genMealy_read_queue_out_spr);
     
    225227      }
    226228#endif
    227     log_printf(FUNC,Read_queue,"Read_queue","End");
     229    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> End"),_name.c_str());
    228230  };
    229  
     231
     232#undef  FUNCTION
     233#define FUNCTION "Read_queue::~Read_queue"
    230234  Read_queue::~Read_queue (void)
    231235  {
    232     log_printf(FUNC,Read_queue,"~Read_queue","Begin");
     236    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> Begin"),_name.c_str());
    233237
    234238#ifdef STATISTICS
    235239    if (usage_is_set(_usage,USE_STATISTICS))
    236240      {
    237         log_printf(INFO,Read_queue,"~Read_queue","Generate Statistics file");
     241        log_printf(INFO,Read_queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    238242       
    239243        delete _stat;
     
    242246
    243247#ifdef SYSTEMC
    244     log_printf(INFO,Read_queue,"~Read_queue","Deallocation");
     248    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    245249
    246250    deallocation ();
    247251#endif
    248252
    249     log_printf(FUNC,Read_queue,"~Read_queue","End");
     253    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> End"),_name.c_str());
    250254  };
    251255
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp

    r135 r136  
    6161      ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
    6262      ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
     63      ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
    6364      ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    6465      ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
     
    9394      ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_OPERATION             ,"operation"            ,Toperation_t      ,_param->_size_operation        );
    9495      ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_TYPE                  ,"type"                 ,Ttype_t           ,_param->_size_type             );
     96      ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_CANCEL                ,"cancel"               ,Tcontrol_t        ,1);
    9597      ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE ,"store_queue_ptr_write",Tlsq_ptr_t        , _param->_size_store_queue_ptr );
    9698      ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ  ,"store_queue_ptr_read" ,Tlsq_ptr_t        , _param->_size_store_queue_ptr );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp

    r128 r136  
    3737        DELETE0_SIGNAL( in_READ_QUEUE_IN_OPERATION             ,_param->_size_operation       );
    3838        DELETE0_SIGNAL( in_READ_QUEUE_IN_TYPE                  ,_param->_size_type            );
     39        DELETE0_SIGNAL( in_READ_QUEUE_IN_CANCEL                ,1                             );
    3940        DELETE0_SIGNAL( in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE ,_param->_size_store_queue_ptr );
    4041        DELETE0_SIGNAL( in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ  ,_param->_size_store_queue_ptr );
     
    6263        DELETE0_SIGNAL(out_READ_QUEUE_OUT_OPERATION            ,_param->_size_operation        );
    6364        DELETE0_SIGNAL(out_READ_QUEUE_OUT_TYPE                 ,_param->_size_type             );
     65        DELETE0_SIGNAL(out_READ_QUEUE_OUT_CANCEL               ,1                              );
    6466        DELETE0_SIGNAL(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr  );
    6567        DELETE0_SIGNAL(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr  );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp

    r123 r136  
    2727    if (PORT_READ(in_NRESET))
    2828      {
     29
     30    // Tcontrol_t cancel = _queue_head->_cancel;
     31
    2932    internal_READ_QUEUE_OUT_DATA_RA_VAL = (// Previous value
    3033                                           _queue_head->_data_ra_val or
     
    3639
    3740    log_printf(TRACE,Read_queue,FUNCTION,"  * internal_READ_QUEUE_OUT_DATA_RA_VAL   : %d",internal_READ_QUEUE_OUT_DATA_RA_VAL);
     41    log_printf(TRACE,Read_queue,FUNCTION,"    * _queue_head->_cancel                : %d",_queue_head->_cancel     );
    3842    log_printf(TRACE,Read_queue,FUNCTION,"    * _queue_head->_data_ra_val           : %d",_queue_head->_data_ra_val);
    3943    log_printf(TRACE,Read_queue,FUNCTION,"    * _queue_head->_read_ra_val           : %d",_queue_head->_read_ra_val);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp

    r123 r136  
    3737   
    3838    if(_param->_have_port_context_id   )
    39       PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID   , _queue_head->_context_id  );
     39    PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID   , _queue_head->_context_id  );
    4040    if(_param->_have_port_front_end_id )
    41       PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id);
     41    PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id);
    4242    if(_param->_have_port_ooo_engine_id)
    43       PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id);
     43    PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id);
    4444    if(_param->_have_port_rob_ptr      )
    45       PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID      , _queue_head->_rob_id      );
     45    PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID      , _queue_head->_rob_id      );
    4646    PORT_WRITE (out_READ_QUEUE_OUT_OPERATION   , _queue_head->_operation   );
    4747    PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
     48    PORT_WRITE (out_READ_QUEUE_OUT_CANCEL      , _queue_head->_cancel      );
    4849    PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE, _queue_head->_store_queue_ptr_write);
    4950    PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ , _queue_head->_store_queue_ptr_read );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp

    r128 r136  
    4949        _queue_head->_operation             = 0;// not necessary
    5050        _queue_head->_type                  = 0;// not necessary
     51        _queue_head->_cancel                = 0;// not necessary
    5152        _queue_head->_store_queue_ptr_write = 0;// not necessary
    5253        _queue_head->_store_queue_ptr_read  = 0;// not necessary
     
    102103            entry->_operation             = PORT_READ(in_READ_QUEUE_IN_OPERATION   );
    103104            entry->_type                  = PORT_READ(in_READ_QUEUE_IN_TYPE        );
     105            entry->_cancel                = PORT_READ(in_READ_QUEUE_IN_CANCEL      );
    104106            entry->_store_queue_ptr_write = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE);
    105107            entry->_store_queue_ptr_read  = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ );
     
    181183        if (_queue->size()>0)
    182184          {
    183             log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)",
     185            log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)",
    184186                       0,
    185187
     
    191193                       _queue_head->_type                 ,
    192194                       _queue_head->_operation            ,
     195                       _queue_head->_cancel               ,
    193196
    194197                       _queue_head->_store_queue_ptr_write,
     
    233236            for (;it!=_queue->end(); ++it)
    234237              {
    235                 log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d   %.4d           , %.1d   %.4d           , %.1d   %.4d     , %.1d %.4d, %.1d %.4d (%s)",
     238                log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d   %.4d           , %.1d   %.4d           , %.1d   %.4d     , %.1d %.4d, %.1d %.4d (%s)",
    236239                           i,
    237240                           
     
    243246                           (*it)->_type                 ,
    244247                           (*it)->_operation            ,
     248                           (*it)->_cancel               ,
    245249                           
    246250                           (*it)->_store_queue_ptr_write,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h

    r122 r136  
    7373  public    : SC_IN (Toperation_t      )    *  in_INSERT_OPERATION      ;
    7474  public    : SC_IN (Ttype_t           )    *  in_INSERT_TYPE           ;
     75  public    : SC_IN (Tcontrol_t        )    *  in_INSERT_CANCEL         ;
    7576  public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_WRITE;
    7677  public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_READ ;
     
    105106  public    : SC_OUT(Toperation_t      )   ** out_RETIRE_OPERATION      ;
    106107  public    : SC_OUT(Ttype_t           )   ** out_RETIRE_TYPE           ;
     108  public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_CANCEL         ;
    107109  public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_WRITE;
    108110  public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_READ ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h

    r122 r136  
    2828  public    : Toperation_t       _operation   ;
    2929  public    : Ttype_t            _type        ;
     30  public    : Tcontrol_t         _cancel      ;
    3031  public    : Tlsq_ptr_t         _store_queue_ptr_write;
    3132  public    : Tlsq_ptr_t         _store_queue_ptr_read ;
     
    6061                    << " * _operation             : " << toString(x._operation      ) << std::endl
    6162                    << " * _type                  : " << toString(x._type           ) << std::endl
     63                    << " * _cancel                : " << toString(x._cancel         ) << std::endl
    6264                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
    6365                    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp

    r131 r136  
    3737    ,_usage (usage)
    3838  {
    39     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     39    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> Begin"),_name.c_str());
    4040
    4141// #if DEBUG_Reservation_station == true
     
    4646
    4747#ifdef SYSTEMC
    48     log_printf(INFO,Reservation_station,FUNCTION,"Allocation");
     48    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4949
    5050    allocation ();
     
    5454    if (usage_is_set(_usage,USE_STATISTICS))
    5555      {
    56         log_printf(INFO,Reservation_station,FUNCTION,"Allocation of statistics");
     56        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5757       
    5858        statistics_declaration(param_statistics);
     
    6464      {
    6565        // generate the vhdl
    66         log_printf(INFO,Reservation_station,FUNCTION,"Generate the vhdl");
     66        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6767       
    6868        vhdl();
     
    7474      {
    7575//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    76     log_printf(INFO,Reservation_station,FUNCTION,"Method - transition");
     76    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7777
    7878    SC_METHOD (transition);
     
    8585#endif   
    8686
    87     log_printf(INFO,Reservation_station,FUNCTION,"Method - genMoore");
     87    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
    8888
    8989    SC_METHOD (genMoore);
     
    9696      }
    9797#endif
    98     log_printf(FUNC,Reservation_station,FUNCTION,"End");
     98    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> End"),_name.c_str());
    9999  };
    100100 
     
    103103  Reservation_station::~Reservation_station (void)
    104104  {
    105     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     105    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> Begin"),_name.c_str());
    106106
    107107#ifdef STATISTICS
    108108    if (usage_is_set(_usage,USE_STATISTICS))
    109109      {
    110         log_printf(INFO,Reservation_station,FUNCTION,"Generate Statistics file");
     110        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    111111       
    112112        delete _stat;
     
    115115
    116116#ifdef SYSTEMC
    117     log_printf(INFO,Reservation_station,FUNCTION,"Deallocation");
     117    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    118118
    119119    deallocation ();
    120120#endif
    121121
    122     log_printf(FUNC,Reservation_station,FUNCTION,"End");
     122    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> End"),_name.c_str());
    123123  };
    124124
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp

    r135 r136  
    6363       ALLOC0_SIGNAL_IN ( in_INSERT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
    6464       ALLOC0_SIGNAL_IN ( in_INSERT_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
     65       ALLOC0_SIGNAL_IN ( in_INSERT_CANCEL               ,"cancel"               ,Tcontrol_t        ,1                             );
    6566       ALLOC0_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr );
    6667       ALLOC0_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr );
     
    101102       ALLOC1_SIGNAL_OUT(out_RETIRE_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation);
    102103       ALLOC1_SIGNAL_OUT(out_RETIRE_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type);
     104       ALLOC1_SIGNAL_OUT(out_RETIRE_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
    103105       ALLOC1_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    104106       ALLOC1_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp

    r122 r136  
    4242        DELETE0_SIGNAL( in_INSERT_OPERATION            ,_param->_size_operation       );
    4343        DELETE0_SIGNAL( in_INSERT_TYPE                 ,_param->_size_type            );
     44        DELETE0_SIGNAL( in_INSERT_CANCEL               ,1                             );
    4445        DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr );
    4546        DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr );
     
    7374        DELETE1_SIGNAL(out_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation);
    7475        DELETE1_SIGNAL(out_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type);
     76        DELETE1_SIGNAL(out_RETIRE_CANCEL               ,_param->_nb_inst_retire,1);
    7577        DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
    7678        DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_READ ,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp

    r123 r136  
    112112            PORT_WRITE(out_RETIRE_OPERATION     [i],_queue[index_find]._operation);
    113113            PORT_WRITE(out_RETIRE_TYPE          [i],_queue[index_find]._type);
     114            PORT_WRITE(out_RETIRE_CANCEL        [i],_queue[index_find]._cancel);
    114115            PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_WRITE [i],_queue[index_find]._store_queue_ptr_write);
    115116            PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_READ  [i],_queue[index_find]._store_queue_ptr_read );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp

    r128 r136  
    2626      for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
    2727        if (_queue_valid [it_dump])                                     \
    28           log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
     28          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
    2929                     it_dump,                                           \
    3030                     _queue[it_dump]._context_id           ,            \
     
    3434                     _queue[it_dump]._type                 ,            \
    3535                     _queue[it_dump]._operation            ,            \
     36                     _queue[it_dump]._cancel               ,            \
    3637                     _queue[it_dump]._store_queue_ptr_write,            \
    3738                     _queue[it_dump]._store_queue_ptr_read ,            \
     
    6364      for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
    6465        if (it_dump < _queue_control->nb_elt())                         \
    65           log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
     66          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
    6667                     (*_queue_control)[it_dump],                        \
    6768                     _queue[(*_queue_control)[it_dump]]._context_id           , \
     
    7172                     _queue[(*_queue_control)[it_dump]]._type                 , \
    7273                     _queue[(*_queue_control)[it_dump]]._operation            , \
     74                     _queue[(*_queue_control)[it_dump]]._cancel               , \
    7375                     _queue[(*_queue_control)[it_dump]]._store_queue_ptr_write, \
    7476                     _queue[(*_queue_control)[it_dump]]._store_queue_ptr_read , \
     
    121123            _queue[i]._operation             = 0; // not necessary
    122124            _queue[i]._type                  = 0; // not necessary
     125            _queue[i]._cancel                = 0; // not necessary
    123126            _queue[i]._store_queue_ptr_write = 0; // not necessary
    124127            _queue[i]._store_queue_ptr_read  = 0; // not necessary
     
    327330            _queue[index]._operation       = PORT_READ(in_INSERT_OPERATION      );
    328331            _queue[index]._type            = PORT_READ(in_INSERT_TYPE           );
     332            _queue[index]._cancel          = PORT_READ(in_INSERT_CANCEL         );
    329333            _queue[index]._store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE);
    330334            _queue[index]._store_queue_ptr_read  = PORT_READ(in_INSERT_STORE_QUEUE_PTR_READ );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Read_unit.h

    r122 r136  
    7373  public    : SC_IN (Toperation_t      )    *  in_READ_UNIT_IN_OPERATION            ;
    7474  public    : SC_IN (Ttype_t           )    *  in_READ_UNIT_IN_TYPE                 ;
     75  public    : SC_IN (Tcontrol_t        )    *  in_READ_UNIT_IN_CANCEL               ;
    7576  public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE;
    7677  public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_UNIT_IN_STORE_QUEUE_PTR_READ ;
     
    99100  public    : SC_OUT(Toperation_t      )   ** out_READ_UNIT_OUT_OPERATION            ;
    100101  public    : SC_OUT(Ttype_t           )   ** out_READ_UNIT_OUT_TYPE                 ;
     102  public    : SC_OUT(Tcontrol_t        )   ** out_READ_UNIT_OUT_CANCEL               ;
    101103  public    : SC_OUT(Tlsq_ptr_t        )   ** out_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE;
    102104  public    : SC_OUT(Tlsq_ptr_t        )   ** out_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit.cpp

    r123 r136  
    3636    ,_usage            (usage)
    3737  {
    38     log_printf(FUNC,Read_unit,FUNCTION,"Begin");
     38    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    3939
    4040// #if DEBUG_Read_unit == true
     
    4444// #endif   
    4545
    46     log_printf(INFO,Read_unit,FUNCTION,"Allocation");
     46    log_printf(INFO,Read_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4747
    4848    allocation (
     
    5555    if (usage_is_set(_usage,USE_STATISTICS))
    5656      {
    57         log_printf(INFO,Read_unit,FUNCTION,"Allocation of statistics");
     57        log_printf(INFO,Read_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5858
    5959        statistics_declaration(param_statistics);
     
    6565      {
    6666        // generate the vhdl
    67         log_printf(INFO,Read_unit,FUNCTION,"Generate the vhdl");
     67        log_printf(INFO,Read_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6868       
    6969        vhdl();
     
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         log_printf(INFO,Read_unit,FUNCTION,"Method - transition");
     76        log_printf(INFO,Read_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7777
    7878        SC_METHOD (transition);
     
    8686#endif
    8787      }
    88     log_printf(FUNC,Read_unit,FUNCTION,"End");
     88    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> End"),_name.c_str());
    8989  };
    9090   
     
    9393  Read_unit::~Read_unit (void)
    9494  {
    95     log_printf(FUNC,Read_unit,FUNCTION,"Begin");
     95    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    9696
    9797#ifdef STATISTICS
    9898    if (usage_is_set(_usage,USE_STATISTICS))
    9999      {
    100         log_printf(INFO,Read_unit,FUNCTION,"Generate Statistics file");
     100        log_printf(INFO,Read_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    101101       
    102102        delete _stat;
     
    104104#endif
    105105
    106     log_printf(INFO,Read_unit,FUNCTION,"Deallocation");
     106    log_printf(INFO,Read_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    107107    deallocation ();
    108108
    109     log_printf(FUNC,Read_unit,FUNCTION,"End");
     109    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> End"),_name.c_str());
    110110  };
    111111
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_allocation.cpp

    r122 r136  
    6767       ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation    );
    6868       ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type         );
     69       ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
    6970       ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    7071       ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
     
    99100       ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
    100101       ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
     102       ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
    101103       ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    102104       ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
     
    271273         _component->port_map(name, "in_READ_QUEUE_IN_OPERATION"            ,dest, "in_READ_UNIT_IN_OPERATION"            );
    272274         _component->port_map(name, "in_READ_QUEUE_IN_TYPE"                 ,dest, "in_READ_UNIT_IN_TYPE"                 );
     275         _component->port_map(name, "in_READ_QUEUE_IN_CANCEL"               ,dest, "in_READ_UNIT_IN_CANCEL"               );
    273276         _component->port_map(name, "in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE",dest, "in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE");
    274277         _component->port_map(name, "in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ" ,dest, "in_READ_UNIT_IN_STORE_QUEUE_PTR_READ" );
     
    310313         _component->port_map(name,"out_READ_QUEUE_OUT_OPERATION"            ,dest, "in_INSERT_OPERATION"            );
    311314         _component->port_map(name,"out_READ_QUEUE_OUT_TYPE"                 ,dest, "in_INSERT_TYPE"                 );
     315         _component->port_map(name,"out_READ_QUEUE_OUT_CANCEL"               ,dest, "in_INSERT_CANCEL"               );
    312316         _component->port_map(name,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE",dest, "in_INSERT_STORE_QUEUE_PTR_WRITE");
    313317         _component->port_map(name,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ" ,dest, "in_INSERT_STORE_QUEUE_PTR_READ" );
     
    436440         _component->port_map(name, "in_INSERT_OPERATION"            ,dest,"out_READ_QUEUE_OUT_OPERATION"            );
    437441         _component->port_map(name, "in_INSERT_TYPE"                 ,dest,"out_READ_QUEUE_OUT_TYPE"                 );
     442         _component->port_map(name, "in_INSERT_CANCEL"               ,dest,"out_READ_QUEUE_OUT_CANCEL"               );
    438443         _component->port_map(name, "in_INSERT_STORE_QUEUE_PTR_WRITE",dest,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE");
    439444         _component->port_map(name, "in_INSERT_STORE_QUEUE_PTR_READ" ,dest,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ" );
     
    483488           _component->port_map(name,"out_RETIRE_"+toString(i)+"_OPERATION"            ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_OPERATION"            );
    484489           _component->port_map(name,"out_RETIRE_"+toString(i)+"_TYPE"                 ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_TYPE"                 );
     490           _component->port_map(name,"out_RETIRE_"+toString(i)+"_CANCEL"               ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_CANCEL"               );
    485491           _component->port_map(name,"out_RETIRE_"+toString(i)+"_STORE_QUEUE_PTR_WRITE",dest,"out_READ_UNIT_OUT_"+toString(i)+"_STORE_QUEUE_PTR_WRITE");
    486492           _component->port_map(name,"out_RETIRE_"+toString(i)+"_STORE_QUEUE_PTR_READ" ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_STORE_QUEUE_PTR_READ" );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_deallocation.cpp

    r128 r136  
    3434        DELETE0_SIGNAL( in_READ_UNIT_IN_FRONT_END_ID         ,_param->_size_front_end_id );
    3535        DELETE0_SIGNAL( in_READ_UNIT_IN_OOO_ENGINE_ID        ,_param->_size_ooo_engine_id);
    36         DELETE0_SIGNAL( in_READ_UNIT_IN_PACKET_ID            ,_param->_size_rob_ptr    );
     36        DELETE0_SIGNAL( in_READ_UNIT_IN_PACKET_ID            ,_param->_size_rob_ptr      );
    3737        DELETE0_SIGNAL( in_READ_UNIT_IN_OPERATION            ,_param->_size_operation    );
    3838        DELETE0_SIGNAL( in_READ_UNIT_IN_TYPE                 ,_param->_size_type         );
     39        DELETE0_SIGNAL( in_READ_UNIT_IN_CANCEL               ,1);
    3940        DELETE0_SIGNAL( in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr);
    4041        DELETE0_SIGNAL( in_READ_UNIT_IN_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr);
     
    6263        DELETE1_SIGNAL(out_READ_UNIT_OUT_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation       );
    6364        DELETE1_SIGNAL(out_READ_UNIT_OUT_TYPE                 ,_param->_nb_inst_retire,_param->_size_type            );
     65        DELETE1_SIGNAL(out_READ_UNIT_OUT_CANCEL               ,_param->_nb_inst_retire,1);
    6466        DELETE1_SIGNAL(out_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
    6567        DELETE1_SIGNAL(out_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h

    r113 r136  
    7979//public    : SC_IN (Toperation_t      )    *  in_EXECUTE_QUEUE_IN_OPERATION     ;
    8080//public    : SC_IN (Ttype_t           )    *  in_EXECUTE_QUEUE_IN_TYPE          ;
     81  public    : SC_IN (Tcontrol_t        )    *  in_EXECUTE_QUEUE_IN_CANCEL        ;
    8182  public    : SC_IN (Tspecial_data_t   )    *  in_EXECUTE_QUEUE_IN_FLAGS         ;
    8283  public    : SC_IN (Texception_t      )    *  in_EXECUTE_QUEUE_IN_EXCEPTION     ;
     
    9495//public    : SC_OUT(Toperation_t      )    * out_EXECUTE_QUEUE_OUT_OPERATION    ;
    9596//public    : SC_OUT(Ttype_t           )    * out_EXECUTE_QUEUE_OUT_TYPE         ;
     97  public    : SC_OUT(Tcontrol_t        )    * out_EXECUTE_QUEUE_OUT_CANCEL       ;
    9698  public    : SC_OUT(Tspecial_data_t   )    * out_EXECUTE_QUEUE_OUT_FLAGS        ;
    9799  public    : SC_OUT(Texception_t      )    * out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h

    r88 r136  
    2828//public  : Toperation_t       _operation    ;
    2929//public  : Ttype_t            _type         ;
     30  public  : Tcontrol_t         _cancel       ;
    3031  public  : Tspecial_data_t    _flags        ;
    3132  public  : Texception_t       _exception    ;
     
    4041                                 //Toperation_t       operation    ,
    4142                                 //Ttype_t            type         ,
     43                                   Tcontrol_t         cancel       ,
    4244                                   Tspecial_data_t    flags        ,
    4345                                   Texception_t       exception    ,
     
    5254    //_operation     = operation    ;
    5355    //_type          = type         ;
     56      _cancel        = cancel       ;
    5457      _flags         = flags        ;
    5558      _exception     = exception    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h

    r113 r136  
    4343//public    : SC_IN (Toperation_t   ) *  in_EXECUTE_QUEUE_IN_OPERATION     ;
    4444//public    : SC_IN (Ttype_t        ) *  in_EXECUTE_QUEUE_IN_TYPE          ;
     45  public    : SC_IN (Tcontrol_t     ) *  in_EXECUTE_QUEUE_IN_CANCEL        ;
    4546  public    : SC_IN (Tspecial_data_t) *  in_EXECUTE_QUEUE_IN_FLAGS         ;
    4647  public    : SC_IN (Texception_t   ) *  in_EXECUTE_QUEUE_IN_EXCEPTION     ;
     
    5859//public    : SC_OUT(Toperation_t   ) * out_EXECUTE_QUEUE_OUT_OPERATION    ;
    5960//public    : SC_OUT(Ttype_t        ) * out_EXECUTE_QUEUE_OUT_TYPE         ;
     61  public    : SC_OUT(Tcontrol_t     ) * out_EXECUTE_QUEUE_OUT_CANCEL       ;
    6062  public    : SC_OUT(Tspecial_data_t) * out_EXECUTE_QUEUE_OUT_FLAGS        ;
    6163  public    : SC_OUT(Texception_t   ) * out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
     
    8789//    ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION     ,"execute_queue_in" ,"operation"    ,Toperation_t      ,_param->_size_operation        );
    8890//    ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE          ,"execute_queue_in" ,"type"         ,Ttype_t           ,_param->_size_type             );
     91      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CANCEL        ,"execute_queue_in" ,"cancel"       ,Tcontrol_t        ,1                              );
    8992      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS         ,"execute_queue_in" ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data     );
    9093      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION     ,"execute_queue_in" ,"exception"    ,Texception_t      ,_param->_size_exception        );
     
    101104//    ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION    ,"execute_queue_out","operation"    ,Toperation_t      ,_param->_size_operation    );
    102105//    ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE         ,"execute_queue_out","type"         ,Ttype_t           ,_param->_size_type         );
     106      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_CANCEL       ,"execute_queue_out","cancel"       ,Tcontrol_t        ,1                          );
    103107      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_FLAGS        ,"execute_queue_out","flags"        ,Tspecial_data_t   ,_param->_size_special_data );
    104108      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,"execute_queue_out","exception"    ,Texception_t      ,_param->_size_exception    );
     
    123127//    DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
    124128//    DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          ,_param->_size_type             );
     129      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_CANCEL        ,1                              );
    125130      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         ,_param->_size_special_data     );
    126131      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     ,_param->_size_exception        );
     
    137142//    DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
    138143//    DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         ,_param->_size_type         );
     144      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_CANCEL       ,1                          );
    139145      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
    140146      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp

    r113 r136  
    6161//     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation          );
    6262//     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type               );
     63       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                                );
    6364       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS        ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data       );
    6465       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception          );
     
    8283//     ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
    8384//     ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
     85       ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1                          );
    8486       ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data );
    8587       ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception    );
     
    184186//      INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_OPERATION      ,Toperation_t   , "in_EXECUTE_QUEUE_IN_OPERATION"      ,_param->_size_operation          );
    185187//      INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_TYPE           ,Ttype_t        , "in_EXECUTE_QUEUE_IN_TYPE"           ,_param->_size_type               );
     188        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_CANCEL         ,Tcontrol_t     , "in_EXECUTE_QUEUE_IN_CANCEL"         ,1                                );
    186189        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_FLAGS          ,Tspecial_data_t, "in_EXECUTE_QUEUE_IN_FLAGS"          ,_param->_size_special_data       );
    187190        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_EXCEPTION      ,Texception_t   , "in_EXECUTE_QUEUE_IN_EXCEPTION"      ,_param->_size_exception          );
     
    198201//      INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_OPERATION     ,Toperation_t   ,"out_EXECUTE_QUEUE_OUT_OPERATION"     ,_param->_size_operation          );
    199202//      INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_TYPE          ,Ttype_t        ,"out_EXECUTE_QUEUE_OUT_TYPE"          ,_param->_size_type               );
     203        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_CANCEL        ,Tcontrol_t     ,"out_EXECUTE_QUEUE_OUT_CANCEL"        ,1                                );
    200204        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_FLAGS         ,Tspecial_data_t,"out_EXECUTE_QUEUE_OUT_FLAGS"         ,_param->_size_special_data       );
    201205        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_EXCEPTION     ,Texception_t   ,"out_EXECUTE_QUEUE_OUT_EXCEPTION"     ,_param->_size_exception          );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp

    r113 r136  
    3838//      DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
    3939//      DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          ,_param->_size_type             );
     40        DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_CANCEL        ,1                              );
    4041        DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         ,_param->_size_special_data     );
    4142        DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     ,_param->_size_exception        );
     
    5253//      DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
    5354//      DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         ,_param->_size_type         );
     55        DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_CANCEL       ,1                          );
    5456        DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
    5557        DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_genMoore.cpp

    r123 r136  
    4949//        PORT_WRITE(out_EXECUTE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
    5050//        PORT_WRITE(out_EXECUTE_QUEUE_OUT_TYPE         , _queue->front()->_type         );
     51          PORT_WRITE(out_EXECUTE_QUEUE_OUT_CANCEL       , _queue->front()->_cancel       );
    5152          PORT_WRITE(out_EXECUTE_QUEUE_OUT_FLAGS        , _queue->front()->_flags        );
    5253          PORT_WRITE(out_EXECUTE_QUEUE_OUT_EXCEPTION    , _queue->front()->_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_transition.cpp

    r101 r136  
    4747             //PORT_READ(in_EXECUTE_QUEUE_IN_OPERATION    ),
    4848             //PORT_READ(in_EXECUTE_QUEUE_IN_TYPE         ),
     49               PORT_READ(in_EXECUTE_QUEUE_IN_CANCEL       ),
    4950               PORT_READ(in_EXECUTE_QUEUE_IN_FLAGS        ),
    5051               PORT_READ(in_EXECUTE_QUEUE_IN_EXCEPTION    ),
     
    7778           ++it)
    7879        {
    79           log_printf(TRACE,Execute_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.4d, %.1d, %.2d %.1d, %.8x %.8x",
     80          log_printf(TRACE,Execute_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.1d, %.4d, %.1d, %.2d %.1d, %.8x %.8x",
    8081                     i,
    8182                     (*it)->_context_id   ,
     
    8586                   //(*it)->_operation    ,
    8687                   //(*it)->_type         ,
     88                     (*it)->_cancel       ,
    8789                     (*it)->_flags        ,
    8890                     (*it)->_exception    ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h

    r118 r136  
    4040//public  : Toperation_t       _operation    ;
    4141//public  : Ttype_t            _type         ;
     42  public  : Tcontrol_t         _cancel       ;
    4243  public  : Tcontrol_t         _write_rd     ;
    4344  public  : Tgeneral_address_t _num_reg_rd   ;
     
    5657//                               Toperation_t       operation    ,
    5758//                               Ttype_t            type         ,
     59                                 Tcontrol_t         cancel       ,
    5860                                 Tcontrol_t         write_rd     ,
    5961                                 Tgeneral_address_t num_reg_rd   ,
     
    7274    //_operation     = operation    ;
    7375    //_type          = type         ;
     76      _cancel        = cancel       ;
    7477      _write_rd      = write_rd     ;
    7578      _num_reg_rd    = num_reg_rd   ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h

    r118 r136  
    7979//public    : SC_IN (Toperation_t      )    *  in_WRITE_QUEUE_IN_OPERATION    ;
    8080//public    : SC_IN (Ttype_t           )    *  in_WRITE_QUEUE_IN_TYPE         ;
     81  public    : SC_IN (Tcontrol_t        )    *  in_WRITE_QUEUE_IN_CANCEL       ;
    8182  public    : SC_IN (Tcontrol_t        )    *  in_WRITE_QUEUE_IN_WRITE_RD     ;
    8283  public    : SC_IN (Tgeneral_address_t)    *  in_WRITE_QUEUE_IN_NUM_REG_RD   ;
     
    9899//public    : SC_OUT(Toperation_t      )    * out_WRITE_QUEUE_OUT_OPERATION    ;
    99100//public    : SC_OUT(Ttype_t           )    * out_WRITE_QUEUE_OUT_TYPE         ;
     101  public    : SC_OUT(Tcontrol_t        )    * out_WRITE_QUEUE_OUT_CANCEL       ;
    100102  public    : SC_OUT(Tspecial_data_t   )    * out_WRITE_QUEUE_OUT_FLAGS        ;
    101103  public    : SC_OUT(Texception_t      )    * out_WRITE_QUEUE_OUT_EXCEPTION    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp

    r114 r136  
    6161//     ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
    6262//     ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type             );
     63       ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                              );
    6364       ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                              );
    6465       ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register );
     
    8687//     ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
    8788//     ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
     89       ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1                          );
    8890       ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data );
    8991       ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp

    r128 r136  
    3838//      DELETE0_SIGNAL( in_WRITE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
    3939//      DELETE0_SIGNAL( in_WRITE_QUEUE_IN_TYPE          ,_param->_size_type             );
     40        DELETE0_SIGNAL( in_WRITE_QUEUE_IN_CANCEL        ,1                              );
    4041        DELETE0_SIGNAL( in_WRITE_QUEUE_IN_WRITE_RD      ,1                              );
    4142        DELETE0_SIGNAL( in_WRITE_QUEUE_IN_NUM_REG_RD    ,_param->_size_general_register );
     
    5657//      DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
    5758//      DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_TYPE         ,_param->_size_type         );
     59        DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_CANCEL       ,1                          );
    5860        DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
    5961        DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_write.cpp

    r123 r136  
    8686//        PORT_WRITE(out_WRITE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
    8787//        PORT_WRITE(out_WRITE_QUEUE_OUT_TYPE         , _queue->front()->_type         );
     88          PORT_WRITE(out_WRITE_QUEUE_OUT_CANCEL       , _queue->front()->_cancel       );
    8889          PORT_WRITE(out_WRITE_QUEUE_OUT_FLAGS        , _queue->front()->_data_re      );
    8990          PORT_WRITE(out_WRITE_QUEUE_OUT_EXCEPTION    , _queue->front()->_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp

    r133 r136  
    119119//        PORT_WRITE(out_WRITE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
    120120//        PORT_WRITE(out_WRITE_QUEUE_OUT_TYPE         , _queue->front()->_type         );
     121          PORT_WRITE(out_WRITE_QUEUE_OUT_CANCEL       , _queue->front()->_cancel       );
    121122          PORT_WRITE(out_WRITE_QUEUE_OUT_FLAGS        , _queue->front()->_data_re      );
    122123          PORT_WRITE(out_WRITE_QUEUE_OUT_EXCEPTION    , _queue->front()->_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp

    r128 r136  
    5454             //PORT_READ(in_WRITE_QUEUE_IN_OPERATION    ),
    5555             //PORT_READ(in_WRITE_QUEUE_IN_TYPE         ),
     56               PORT_READ(in_WRITE_QUEUE_IN_CANCEL       ),
    5657               PORT_READ(in_WRITE_QUEUE_IN_WRITE_RD     ),
    5758               PORT_READ(in_WRITE_QUEUE_IN_NUM_REG_RD   ),
     
    9697           ++it)
    9798        {
    98           log_printf(TRACE,Write_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.4d, %.1d %.4d %.8x, %.1d %.4d %.1d, %.2d %.1d, %.8x",
     99          log_printf(TRACE,Write_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.4d, %.1d, %.1d %.4d %.8x, %.1d %.4d %.1d, %.2d %.1d, %.8x",
    99100                     i,
    100101                     (*it)->_context_id   ,
     
    104105                   //(*it)->_operation    ,
    105106                   //(*it)->_type         ,
     107                     (*it)->_cancel       ,
    106108                     (*it)->_write_rd     ,
    107109                     (*it)->_num_reg_rd   ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h

    r113 r136  
    7272//public    : SC_IN (Toperation_t      )    *  in_WRITE_UNIT_IN_OPERATION    ;
    7373//public    : SC_IN (Ttype_t           )    *  in_WRITE_UNIT_IN_TYPE         ;
     74  public    : SC_IN (Tcontrol_t        )    *  in_WRITE_UNIT_IN_CANCEL       ;
    7475  public    : SC_IN (Tcontrol_t        )    *  in_WRITE_UNIT_IN_WRITE_RD     ;
    7576  public    : SC_IN (Tgeneral_address_t)    *  in_WRITE_UNIT_IN_NUM_REG_RD   ;
     
    9192//public    : SC_OUT(Toperation_t      )    * out_WRITE_UNIT_OUT_OPERATION    ;
    9293//public    : SC_OUT(Ttype_t           )    * out_WRITE_UNIT_OUT_TYPE         ;
     94  public    : SC_OUT(Tcontrol_t        )    * out_WRITE_UNIT_OUT_CANCEL       ;
    9395  public    : SC_OUT(Tspecial_data_t   )    * out_WRITE_UNIT_OUT_FLAGS        ;
    9496  public    : SC_OUT(Texception_t      )    * out_WRITE_UNIT_OUT_EXCEPTION    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp

    r113 r136  
    6767//     ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
    6868//     ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type             );
     69       ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                              );
    6970       ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                              );
    7071       ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register );
     
    9293//     ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
    9394//     ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
     95       ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1                          );
    9496       ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data );
    9597       ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception    );
     
    216218     //_component->port_map(name, "in_WRITE_QUEUE_IN_OPERATION"    , _name, "in_WRITE_UNIT_IN_OPERATION"    );
    217219     //_component->port_map(name, "in_WRITE_QUEUE_IN_TYPE"         , _name, "in_WRITE_UNIT_IN_TYPE"         );
     220       _component->port_map(name, "in_WRITE_QUEUE_IN_CANCEL"       , _name, "in_WRITE_UNIT_IN_CANCEL"       );
    218221       _component->port_map(name, "in_WRITE_QUEUE_IN_WRITE_RD"     , _name, "in_WRITE_UNIT_IN_WRITE_RD"     );
    219222       _component->port_map(name, "in_WRITE_QUEUE_IN_NUM_REG_RD"   , _name, "in_WRITE_UNIT_IN_NUM_REG_RD"   );
     
    246249         //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION"    , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OPERATION"    );
    247250         //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE"         , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_TYPE"         );
     251           _component->port_map(name,"out_WRITE_QUEUE_OUT_CANCEL"       , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_CANCEL"       );
    248252           _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS"        , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FLAGS"        );
    249253           _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION"    , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_EXCEPTION"    );
     
    272276         //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE"         , _name,"out_WRITE_UNIT_OUT_TYPE"         );
    273277           _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS"        , _name,"out_WRITE_UNIT_OUT_FLAGS"        );
     278           _component->port_map(name,"out_WRITE_QUEUE_OUT_CANCEL"       , _name,"out_WRITE_UNIT_OUT_CANCEL"       );
    274279           _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION"    , _name,"out_WRITE_UNIT_OUT_EXCEPTION"    );
    275280           _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE"  , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE"  );
     
    358363       //_component->port_map(name, "in_EXECUTE_QUEUE_IN_OPERATION"    , _name+"_write_queue","out_WRITE_QUEUE_OUT_OPERATION"    );
    359364       //_component->port_map(name, "in_EXECUTE_QUEUE_IN_TYPE"         , _name+"_write_queue","out_WRITE_QUEUE_OUT_TYPE"         );
     365         _component->port_map(name, "in_EXECUTE_QUEUE_IN_CANCEL"       , _name+"_write_queue","out_WRITE_QUEUE_OUT_CANCEL"       );
    360366         _component->port_map(name, "in_EXECUTE_QUEUE_IN_FLAGS"        , _name+"_write_queue","out_WRITE_QUEUE_OUT_FLAGS"        );
    361367         _component->port_map(name, "in_EXECUTE_QUEUE_IN_EXCEPTION"    , _name+"_write_queue","out_WRITE_QUEUE_OUT_EXCEPTION"    );
     
    381387       //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_OPERATION"    , _name,"out_WRITE_UNIT_OUT_OPERATION"    );
    382388       //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_TYPE"         , _name,"out_WRITE_UNIT_OUT_TYPE"         );
     389         _component->port_map(name,"out_EXECUTE_QUEUE_OUT_CANCEL"       , _name,"out_WRITE_UNIT_OUT_CANCEL"       );
    383390         _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FLAGS"        , _name,"out_WRITE_UNIT_OUT_FLAGS"        );
    384391         _component->port_map(name,"out_EXECUTE_QUEUE_OUT_EXCEPTION"    , _name,"out_WRITE_UNIT_OUT_EXCEPTION"    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_deallocation.cpp

    r112 r136  
    3737//      DELETE0_SIGNAL( in_WRITE_UNIT_IN_OPERATION    ,_param->_size_operation        );
    3838//      DELETE0_SIGNAL( in_WRITE_UNIT_IN_TYPE         ,_param->_size_type             );
     39        DELETE0_SIGNAL( in_WRITE_UNIT_IN_CANCEL       ,1                              );
    3940        DELETE0_SIGNAL( in_WRITE_UNIT_IN_WRITE_RD     ,1                              );
    4041        DELETE0_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RD   ,_param->_size_general_register );
     
    5556//      DELETE0_SIGNAL(out_WRITE_UNIT_OUT_OPERATION    ,_param->_size_operation    );
    5657//      DELETE0_SIGNAL(out_WRITE_UNIT_OUT_TYPE         ,_param->_size_type         );
     58        DELETE0_SIGNAL(out_WRITE_UNIT_OUT_CANCEL       ,1                          );
    5759        DELETE0_SIGNAL(out_WRITE_UNIT_OUT_FLAGS        ,_param->_size_special_data );
    5860        DELETE0_SIGNAL(out_WRITE_UNIT_OUT_EXCEPTION    ,_param->_size_exception    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/include/Execution_unit_to_Write_unit.h

    r97 r136  
    7373//public    : SC_IN (Toperation_t      )  ***  in_EXECUTE_UNIT_OUT_OPERATION      ;
    7474//public    : SC_IN (Ttype_t           )  ***  in_EXECUTE_UNIT_OUT_TYPE           ;
     75  public    : SC_IN (Tcontrol_t        )  ***  in_EXECUTE_UNIT_OUT_CANCEL         ;
    7576  public    : SC_IN (Tcontrol_t        )  ***  in_EXECUTE_UNIT_OUT_WRITE_RD       ;
    7677  public    : SC_IN (Tgeneral_address_t)  ***  in_EXECUTE_UNIT_OUT_NUM_REG_RD     ;
     
    9293//public    : SC_OUT(Toperation_t      )   ** out_WRITE_UNIT_IN_OPERATION      ;
    9394//public    : SC_OUT(Ttype_t           )   ** out_WRITE_UNIT_IN_TYPE           ;
     95  public    : SC_OUT(Tcontrol_t        )   ** out_WRITE_UNIT_IN_CANCEL         ;
    9496  public    : SC_OUT(Tcontrol_t        )   ** out_WRITE_UNIT_IN_WRITE_RD       ;
    9597  public    : SC_OUT(Tgeneral_address_t)   ** out_WRITE_UNIT_IN_NUM_REG_RD     ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.cpp

    r132 r136  
    3636    ,_usage            (usage)
    3737  {
    38     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
     38    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    3939
    4040// #if DEBUG_Execution_unit_to_Write_unit == true
     
    4444// #endif   
    4545
    46     log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation");
     46    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4747
    4848    allocation (
     
    5555    if (usage_is_set(_usage,USE_STATISTICS))
    5656      {
    57         log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation of statistics");
     57        log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5858
    5959        statistics_declaration(param_statistics);
     
    6565      {
    6666        // generate the vhdl
    67         log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Generate the vhdl");
     67        log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6868       
    6969        vhdl();
     
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Method - transition");
     76        log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7777
    7878        SC_METHOD (transition);
     
    8484# endif   
    8585
    86         log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Method - genMealy");
     86        log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Method - genMealy"),_name.c_str());
    8787
    8888        SC_METHOD (genMealy);
     
    105105                      //<< (*(in_EXECUTE_UNIT_OUT_OPERATION     [i][j]))
    106106                      //<< (*(in_EXECUTE_UNIT_OUT_TYPE          [i][j]))
     107                        << (*(in_EXECUTE_UNIT_OUT_CANCEL        [i][j]))
    107108                        << (*(in_EXECUTE_UNIT_OUT_WRITE_RD      [i][j]))
    108109                        << (*(in_EXECUTE_UNIT_OUT_NUM_REG_RD    [i][j]))
     
    371372#endif
    372373      }
    373     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
     374    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> End"),_name.c_str());
    374375  };
    375376   
     
    378379  Execution_unit_to_Write_unit::~Execution_unit_to_Write_unit (void)
    379380  {
    380     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
     381    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    381382
    382383#ifdef STATISTICS
    383384    if (usage_is_set(_usage,USE_STATISTICS))
    384385      {
    385         log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Generate Statistics file");
     386        log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    386387       
    387388        delete _stat;
     
    389390#endif
    390391
    391     log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Deallocation");
     392    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    392393    deallocation ();
    393394
    394     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
     395    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> End"),_name.c_str());
    395396  };
    396397
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_allocation.cpp

    r112 r136  
    6868     //_ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation       , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
    6969     //_ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type            , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
     70       _ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                             , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
    7071       _ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                             , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
    7172       _ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register, _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
     
    9394     //ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation       );
    9495     //ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type            );
     96       ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                             );
    9597       ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                             );
    9698       ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_deallocation.cpp

    r112 r136  
    3737     // DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_OPERATION    , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],_param->_size_operation       );
    3838     // DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_TYPE         , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],_param->_size_type            );
     39        DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_CANCEL       , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],1                             );
    3940        DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_WRITE_RD     , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],1                             );
    4041        DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_NUM_REG_RD   , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],_param->_size_general_register);
     
    5556     // DELETE1_SIGNAL(out_WRITE_UNIT_IN_OPERATION    , _param->_nb_write_unit,_param->_size_operation       );
    5657     // DELETE1_SIGNAL(out_WRITE_UNIT_IN_TYPE         , _param->_nb_write_unit,_param->_size_type            );
     58        DELETE1_SIGNAL(out_WRITE_UNIT_IN_CANCEL       , _param->_nb_write_unit,1                             );
    5759        DELETE1_SIGNAL(out_WRITE_UNIT_IN_WRITE_RD     , _param->_nb_write_unit,1                             );
    5860        DELETE1_SIGNAL(out_WRITE_UNIT_IN_NUM_REG_RD   , _param->_nb_write_unit,_param->_size_general_register);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_genMealy.cpp

    r123 r136  
    7979//                    PORT_WRITE(out_WRITE_UNIT_IN_OPERATION             [dest], PORT_READ(in_EXECUTE_UNIT_OUT_OPERATION             [i][j]));
    8080//                    PORT_WRITE(out_WRITE_UNIT_IN_TYPE                  [dest], PORT_READ(in_EXECUTE_UNIT_OUT_TYPE                  [i][j]));
     81                      PORT_WRITE(out_WRITE_UNIT_IN_CANCEL                [dest], PORT_READ(in_EXECUTE_UNIT_OUT_CANCEL                [i][j]));
    8182                      PORT_WRITE(out_WRITE_UNIT_IN_WRITE_RD              [dest], PORT_READ(in_EXECUTE_UNIT_OUT_WRITE_RD              [i][j]));
    8283                      PORT_WRITE(out_WRITE_UNIT_IN_NUM_REG_RD            [dest], PORT_READ(in_EXECUTE_UNIT_OUT_NUM_REG_RD            [i][j]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/include/Read_unit_to_Execution_unit.h

    r122 r136  
    8484  public    : SC_IN (Toperation_t      )  ***  in_READ_UNIT_OUT_OPERATION              ;//[nb_read_unit][nb_read_unit_port]
    8585  public    : SC_IN (Ttype_t           )  ***  in_READ_UNIT_OUT_TYPE                   ;//[nb_read_unit][nb_read_unit_port]
     86  public    : SC_IN (Tcontrol_t        )  ***  in_READ_UNIT_OUT_CANCEL                 ;//[nb_read_unit][nb_read_unit_port]
    8687  public    : SC_IN (Tlsq_ptr_t        )  ***  in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE  ;//[nb_read_unit][nb_read_unit_port]
    8788  public    : SC_IN (Tlsq_ptr_t        )  ***  in_READ_UNIT_OUT_STORE_QUEUE_PTR_READ   ;//[nb_read_unit][nb_read_unit_port]
     
    107108  public    : SC_OUT(Toperation_t      )  *** out_EXECUTE_UNIT_IN_OPERATION            ;//[nb_execute_unit][nb_execute_unit_port]
    108109  public    : SC_OUT(Ttype_t           )  *** out_EXECUTE_UNIT_IN_TYPE                 ;//[nb_execute_unit][nb_execute_unit_port]
     110  public    : SC_OUT(Tcontrol_t        )  *** out_EXECUTE_UNIT_IN_CANCEL               ;//[nb_execute_unit][nb_execute_unit_port]
    109111  public    : SC_OUT(Tlsq_ptr_t        )  *** out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_WRITE;//[nb_execute_unit][nb_execute_unit_port]
    110112  public    : SC_OUT(Tlsq_ptr_t        )  *** out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_READ ;//[nb_execute_unit][nb_execute_unit_port]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit.cpp

    r132 r136  
    3636    ,_usage            (usage)
    3737  {
    38     log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
     38    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    3939
    4040// #if DEBUG_Read_unit_to_Execution_unit == true
     
    4444// #endif   
    4545
    46     log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Allocation");
     46    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4747
    4848    allocation (
     
    5555    if (usage_is_set(_usage,USE_STATISTICS))
    5656      {
    57         log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Allocation of statistics");
     57        log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5858
    5959        statistics_declaration(param_statistics);
     
    6565      {
    6666        // generate the vhdl
    67         log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Generate the vhdl");
     67        log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6868       
    6969        vhdl();
     
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Method - transition");
     76        log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7777
    7878        SC_METHOD (transition);
     
    8484# endif   
    8585
    86         log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Method - genMealy");
     86        log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Method - genMealy"),_name.c_str());
    8787
    8888        SC_METHOD (genMealy);
     
    9797                        << (*(in_READ_UNIT_OUT_OPERATION             [i][j]))
    9898                        << (*(in_READ_UNIT_OUT_TYPE                  [i][j]))
     99                        << (*(in_READ_UNIT_OUT_CANCEL                [i][j]))
    99100                        << (*(in_READ_UNIT_OUT_HAS_IMMEDIAT          [i][j]))
    100101                        << (*(in_READ_UNIT_OUT_IMMEDIAT              [i][j]))
     
    450451#endif
    451452      }
    452     log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"End");
     453    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> End"),_name.c_str());
    453454  };
    454455   
     
    457458  Read_unit_to_Execution_unit::~Read_unit_to_Execution_unit (void)
    458459  {
    459     log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
     460    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    460461
    461462#ifdef STATISTICS
    462463    if (usage_is_set(_usage,USE_STATISTICS))
    463464      {
    464         log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Generate Statistics file");
     465        log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    465466       
    466467        delete _stat;
     
    468469#endif
    469470
    470     log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Deallocation");
     471    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    471472    deallocation ();
    472473
    473     log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"End");
     474    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> End"),_name.c_str());
    474475  };
    475476
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_allocation.cpp

    r122 r136  
    6767       _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_OPERATION            ,"OPERATION"            ,Toperation_t      ,_param->_size_operation        ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
    6868       _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_TYPE                 ,"TYPE"                 ,Ttype_t           ,_param->_size_type             ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
     69       _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_CANCEL               ,"CANCEL"               ,Tcontrol_t        ,1                              ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
    6970       _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_size_store_queue_ptr  ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
    7071       _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ,"STORE_QUEUE_PTR_READ" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr  ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
     
    9596       _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_OPERATION            ,"OPERATION"            ,Toperation_t      ,_param->_size_operation        , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
    9697       _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_TYPE                 ,"TYPE"                 ,Ttype_t           ,_param->_size_type             , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
     98       _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_CANCEL               ,"CANCEL"               ,Tcontrol_t        ,1                              , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
    9799       _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT         ,"HAS_IMMEDIAT"         ,Tcontrol_t        ,1                              , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
    98100       _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RC              ,"DATA_RC"              ,Tspecial_data_t   ,_param->_size_special_data     , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_deallocation.cpp

    r128 r136  
    3737         DELETE2_SIGNAL( in_READ_UNIT_OUT_OPERATION              , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_operation        );
    3838         DELETE2_SIGNAL( in_READ_UNIT_OUT_TYPE                   , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_type             );
     39         DELETE2_SIGNAL( in_READ_UNIT_OUT_CANCEL                 , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],1                              );
    3940         DELETE2_SIGNAL( in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE  , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_store_queue_ptr  );
    4041         DELETE2_SIGNAL( in_READ_UNIT_OUT_STORE_QUEUE_PTR_READ   , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_store_queue_ptr  );
     
    5960         DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_OPERATION            , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],_param->_size_operation        );
    6061         DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_TYPE                 , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],_param->_size_type             );
     62         DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_CANCEL               , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],1                              );
    6163         DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT         , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],1                              );
    6264         DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_DATA_RC              , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],_param->_size_special_data     );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_genMealy.cpp

    r123 r136  
    8484                      PORT_WRITE(out_EXECUTE_UNIT_IN_PACKET_ID             [dest][port], PORT_READ(in_READ_UNIT_OUT_PACKET_ID             [i][j]));
    8585                      PORT_WRITE(out_EXECUTE_UNIT_IN_OPERATION             [dest][port], PORT_READ(in_READ_UNIT_OUT_OPERATION             [i][j]));
     86                      PORT_WRITE(out_EXECUTE_UNIT_IN_CANCEL                [dest][port], PORT_READ(in_READ_UNIT_OUT_CANCEL                [i][j]));
    8687                      PORT_WRITE(out_EXECUTE_UNIT_IN_TYPE                  [dest][port], PORT_READ(in_READ_UNIT_OUT_TYPE                  [i][j]));
    8788                      PORT_WRITE(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT          [dest][port], PORT_READ(in_READ_UNIT_OUT_HAS_IMMEDIAT          [i][j]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h

    r88 r136  
    3434  public : uint32_t    _nb_gpr_write         ;
    3535  public : uint32_t    _nb_spr_write         ;
    36   public : uint32_t  * _nb_inst_insert_rob   ;
    37   public : uint32_t  * _nb_inst_retire_rob   ;
     36  public : uint32_t    _nb_inst_issue        ;
     37//   public : uint32_t  * _nb_inst_insert_rob   ;
     38//   public : uint32_t  * _nb_inst_retire_rob   ;
    3839
    3940//public : bool        _have_port_ooo_engine_id;
     
    4748                        uint32_t   nb_gpr_write         ,
    4849                        uint32_t   nb_spr_write         ,
    49                         uint32_t * nb_inst_insert_rob   ,
    50                         uint32_t * nb_inst_retire_rob   ,
     50                        uint32_t   nb_inst_issue        ,
     51//                      uint32_t * nb_inst_insert_rob   ,
     52//                      uint32_t * nb_inst_retire_rob   ,
    5153                        bool       is_toplevel=false);
    5254//public : Parameters  (Parameters & param) ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h

    r131 r136  
    118118  public    : SC_OUT(Tspecial_data_t   )  *** out_SPR_WRITE_STATUS_DATA     ; // type for compatibility with the registerFile
    119119
    120     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    121   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;
    122   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;
    123   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;
    124   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;
    125 
    126   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_GPR_STATUS_VAL            ;
    127   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_GPR_STATUS_ACK            ;
    128   public    : SC_OUT(Tgeneral_data_t   )  *** out_INSERT_ROB_GPR_STATUS_DATA           ; // type for compatibility with the registerFile
    129 
    130   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_SPR_STATUS_VAL            ;
    131   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_SPR_STATUS_ACK            ;
    132   public    : SC_OUT(Tspecial_data_t   )  *** out_INSERT_ROB_SPR_STATUS_DATA           ; // type for compatibility with the registerFile
     120    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     121  public    : SC_IN (Tcontrol_t        )  **  in_ISSUE_VAL                  ;
     122  public    : SC_OUT(Tcontrol_t        )  ** out_ISSUE_ACK                  ;
     123  public    : SC_IN (Tcontext_t        )  **  in_ISSUE_OOO_ENGINE_ID        ;
     124  public    : SC_IN (Tcontrol_t        )  **  in_ISSUE_RD_USE               ;
     125  public    : SC_IN (Tcontrol_t        )  **  in_ISSUE_RE_USE               ;
     126
     127  public    : SC_OUT(Tcontrol_t        ) *** out_ISSUE_GPR_STATUS_VAL       ;
     128  public    : SC_IN (Tcontrol_t        ) ***  in_ISSUE_GPR_STATUS_ACK       ;
     129  public    : SC_OUT(Tgeneral_data_t   ) *** out_ISSUE_GPR_STATUS_DATA      ; // type for compatibility with the registerFile
     130
     131  public    : SC_OUT(Tcontrol_t        ) *** out_ISSUE_SPR_STATUS_VAL       ;
     132  public    : SC_IN (Tcontrol_t        ) ***  in_ISSUE_SPR_STATUS_ACK       ;
     133  public    : SC_OUT(Tspecial_data_t   ) *** out_ISSUE_SPR_STATUS_DATA      ; // type for compatibility with the registerFile
     134
     135//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     136//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;
     137//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;
     138//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;
     139//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;
     140
     141//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_GPR_STATUS_VAL            ;
     142//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_GPR_STATUS_ACK            ;
     143//   public    : SC_OUT(Tgeneral_data_t   )  *** out_INSERT_ROB_GPR_STATUS_DATA           ; // type for compatibility with the registerFile
     144
     145//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_SPR_STATUS_VAL            ;
     146//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_SPR_STATUS_ACK            ;
     147//   public    : SC_OUT(Tspecial_data_t   )  *** out_INSERT_ROB_SPR_STATUS_DATA           ; // type for compatibility with the registerFile
    133148
    134149//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters.cpp

    r88 r136  
    2626                          uint32_t   nb_gpr_write         ,
    2727                          uint32_t   nb_spr_write         ,
    28                           uint32_t * nb_inst_insert_rob   ,
    29                           uint32_t * nb_inst_retire_rob   ,
     28                          uint32_t   nb_inst_issue        ,
     29//                        uint32_t * nb_inst_insert_rob   ,
     30//                        uint32_t * nb_inst_retire_rob   ,
    3031                          bool       is_toplevel          )
    3132  {
     
    3738    _nb_gpr_write            = nb_gpr_write      ;
    3839    _nb_spr_write            = nb_spr_write      ;
    39     _nb_inst_insert_rob      = nb_inst_insert_rob;
    40     _nb_inst_retire_rob      = nb_inst_retire_rob;
     40    _nb_inst_issue           = nb_inst_issue     ;
     41//     _nb_inst_insert_rob      = nb_inst_insert_rob;
     42//     _nb_inst_retire_rob      = nb_inst_retire_rob;
    4143
    4244    test();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp

    r81 r136  
    3434    xml.singleton_begin("nb_gpr_write     "); xml.attribut("value",toString(_nb_gpr_write     )); xml.singleton_end();
    3535    xml.singleton_begin("nb_spr_write     "); xml.attribut("value",toString(_nb_spr_write     )); xml.singleton_end();
     36    xml.singleton_begin("nb_inst_issue    "); xml.attribut("value",toString(_nb_inst_issue    )); xml.singleton_end();
    3637
    37     xml. balise_open("multi_ooo_engine");
    38     for (uint32_t i=0; i<_nb_ooo_engine; i++)
    39       {
    40         xml.  balise_open_begin("ooo_engine");
    41         xml.   attribut("id", toString(i));
    42         xml.  balise_open_end();
    43         xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
    44         xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
    45         xml.  balise_close();
    46       }
    47     xml. balise_close();
     38//     xml. balise_open("multi_ooo_engine");
     39//     for (uint32_t i=0; i<_nb_ooo_engine; i++)
     40//       {
     41//      xml.  balise_open_begin("ooo_engine");
     42//      xml.   attribut("id", toString(i));
     43//      xml.  balise_open_end();
     44//      xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
     45//      xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
     46//      xml.  balise_close();
     47//       }
     48//     xml. balise_close();
    4849    xml.balise_close();
    4950
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp

    r132 r136  
    3636    ,_usage            (usage)
    3737  {
    38     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
     38    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> Begin"),_name.c_str());
    3939
    4040// #if DEBUG_Register_unit_Glue == true
     
    4444// #endif   
    4545
    46     log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
     46    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4747    allocation ();
    4848
     
    5050    if (usage_is_set(_usage,USE_STATISTICS))
    5151      {
    52         log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
     52        log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5353       
    5454        // Allocation of statistics
     
    6161      {
    6262        // generate the vhdl
    63         log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
     63        log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6464       
    6565        vhdl();
     
    7373        constant();
    7474#else
    75     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - constant");
     75    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - constant"),_name.c_str());
    7676
    7777    SC_METHOD (constant);
     
    8383#endif
    8484
    85     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - transition");
     85    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    8686
    8787    SC_METHOD (transition);
     
    9393#endif   
    9494
    95     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read");
     95    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read"),_name.c_str());
    9696
    9797    SC_METHOD (genMealy_gpr_read);
     
    131131#endif   
    132132
    133     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read_status");
     133    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read_status"),_name.c_str());
    134134
    135135    SC_METHOD (genMealy_gpr_read_status);
     
    161161#endif   
    162162
    163     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read_registerfile");
     163    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read_registerfile"),_name.c_str());
    164164
    165165    SC_METHOD (genMealy_gpr_read_registerfile);
     
    191191#endif   
    192192
    193     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write");
     193    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write"),_name.c_str());
    194194
    195195    SC_METHOD (genMealy_gpr_write);
     
    222222#endif   
    223223
    224     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write_status");
     224    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write_status"),_name.c_str());
    225225
    226226    SC_METHOD (genMealy_gpr_write_status);
     
    252252#endif   
    253253
    254     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write_registerfile");
     254    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write_registerfile"),_name.c_str());
    255255
    256256    SC_METHOD (genMealy_gpr_write_registerfile);
     
    282282#endif   
    283283
    284     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read");
     284    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read"),_name.c_str());
    285285
    286286    SC_METHOD (genMealy_spr_read);
     
    320320#endif   
    321321
    322     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read_status");
     322    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read_status"),_name.c_str());
    323323
    324324    SC_METHOD (genMealy_spr_read_status);
     
    350350#endif   
    351351
    352     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read_registerfile");
     352    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read_registerfile"),_name.c_str());
    353353
    354354    SC_METHOD (genMealy_spr_read_registerfile);
     
    380380#endif   
    381381
    382     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write");
     382    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write"),_name.c_str());
    383383
    384384    SC_METHOD (genMealy_spr_write);
     
    411411#endif   
    412412
    413     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write_status");
     413    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write_status"),_name.c_str());
    414414
    415415    SC_METHOD (genMealy_spr_write_status);
     
    441441#endif   
    442442
    443     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write_registerfile");
     443    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write_registerfile"),_name.c_str());
    444444
    445445    SC_METHOD (genMealy_spr_write_registerfile);
     
    471471#endif   
    472472
    473     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_insert");
     473    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_insert"),_name.c_str());
    474474
    475475    SC_METHOD (genMealy_insert);
     
    477477//     sensitive << (*(in_CLOCK)).neg();
    478478    sensitive << (*(in_NRESET));
    479     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    480       {
    481         uint32_t x=_param->_nb_inst_insert_rob [i];
    482         for (uint32_t j=0; j<x; j++)
    483           sensitive << *( in_INSERT_ROB_VAL            [i][j])
    484                     << *( in_INSERT_ROB_RD_USE         [i][j])
    485                     << *( in_INSERT_ROB_RE_USE         [i][j])
    486                     << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j])
    487                     << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
    488       }
    489 #ifdef SYSTEMCASS_SPECIFIC
    490     // List dependency information
    491     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    492       {
    493         uint32_t x=_param->_nb_inst_insert_rob [i];
    494         for (uint32_t j=0; j<x; j++)
    495           {
    496             (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
    497             (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
    498 
    499             (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
    500             (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE         [i][j]));
    501             (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
    502 
    503             (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
    504             (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE         [i][j]));
    505             (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
    506           }
    507       }
    508 #endif   
    509 
    510 //     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
     479    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     480      {
     481        sensitive << *( in_ISSUE_VAL            [i])
     482                  << *( in_ISSUE_RD_USE         [i])
     483                  << *( in_ISSUE_RE_USE         [i]);
     484
     485        if (_param->_have_port_ooo_engine_id == true)
     486        sensitive << *( in_ISSUE_OOO_ENGINE_ID [i]);
     487
     488        for (uint32_t j=0; j<_param->_nb_ooo_engine; ++j)
     489          sensitive << *( in_ISSUE_GPR_STATUS_ACK [j][i])
     490                    << *( in_ISSUE_SPR_STATUS_ACK [j][i]);
     491      }
     492
     493//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     494//       {
     495//      uint32_t x=_param->_nb_inst_insert_rob [i];
     496//      for (uint32_t j=0; j<x; j++)
     497//        sensitive << *( in_INSERT_ROB_VAL            [i][j])
     498//                  << *( in_INSERT_ROB_RD_USE         [i][j])
     499//                  << *( in_INSERT_ROB_RE_USE         [i][j])
     500//                  << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j])
     501//                  << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
     502//       }
     503#ifdef SYSTEMCASS_SPECIFIC
     504//     // List dependency information
     505//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     506//       {
     507//      uint32_t x=_param->_nb_inst_insert_rob [i];
     508//      for (uint32_t j=0; j<x; j++)
     509//        {
     510//          (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
     511//          (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
     512
     513//          (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
     514//          (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE         [i][j]));
     515//          (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
     516
     517//          (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
     518//          (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE         [i][j]));
     519//          (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
     520//        }
     521//       }
     522#endif   
     523
     524//     log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_retire"),_name.c_str());
    511525
    512526//     SC_METHOD (genMealy_retire);
     
    567581      }
    568582#endif
    569     log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
     583    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> End"),_name.c_str());
    570584  };
    571585 
     
    574588  Register_unit_Glue::~Register_unit_Glue (void)
    575589  {
    576     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
     590    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> Begin"),_name.c_str());
    577591
    578592#ifdef STATISTICS
    579593    if (usage_is_set(_usage,USE_STATISTICS))
    580594      {
    581         log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
     595        log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    582596       
    583597        delete _stat;
     
    585599#endif
    586600
    587     log_printf(INFO,Register_unit_Glue,FUNCTION,"Deallocation");
     601    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    588602    deallocation ();
    589603
    590     log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
     604    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> End"),_name.c_str());
    591605  };
    592606
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp

    r131 r136  
    177177    }
    178178
    179     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    180     {
    181       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    182      
    183       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL   ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    184       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK   ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    185       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE,"rd_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    186       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE,"re_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    187 
    188       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    189     }
    190    
    191     {
    192       ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    193      
    194       _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    195       _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    196       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    197 
    198       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    199     }
    200    
    201     {
    202       ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    203      
    204       _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    205       _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    206       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    207 
    208       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    209     }
     179    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     180    {
     181      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (insert)"),_param->_nb_inst_issue);
     182     
     183      ALLOC1_VALACK_IN ( in_ISSUE_VAL          ,VAL);
     184      ALLOC1_VALACK_OUT(out_ISSUE_ACK          ,ACK);
     185      ALLOC1_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t,_param->_size_ooo_engine_id);
     186      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_USE       ,"rd_use"       ,Tcontrol_t, 1);
     187      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_USE       ,"re_use"       ,Tcontrol_t, 1);
     188
     189      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
     190    }
     191   
     192    {
     193      ALLOC2_INTERFACE_BEGIN("issue_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_issue);
     194     
     195      ALLOC2_VALACK_OUT(out_ISSUE_GPR_STATUS_VAL ,VAL                     );
     196      ALLOC2_VALACK_IN ( in_ISSUE_GPR_STATUS_ACK ,ACK                     );
     197      ALLOC2_SIGNAL_OUT(out_ISSUE_GPR_STATUS_DATA,"data",Tgeneral_data_t,1);
     198
     199      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_issue);
     200    }
     201   
     202    {
     203      ALLOC2_INTERFACE_BEGIN("issue_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine, _param->_nb_inst_issue);
     204     
     205      ALLOC2_VALACK_OUT(out_ISSUE_SPR_STATUS_VAL ,VAL                     );
     206      ALLOC2_VALACK_IN ( in_ISSUE_SPR_STATUS_ACK ,ACK                     );
     207      ALLOC2_SIGNAL_OUT(out_ISSUE_SPR_STATUS_DATA,"data",Tspecial_data_t,1);
     208
     209      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_issue);
     210    }
     211
     212//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     213//     {
     214//       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     215     
     216//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL   ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     217//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK   ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     218//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE,"rd_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     219//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE,"re_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     220
     221//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     222//     }
     223   
     224//     {
     225//       ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     226     
     227//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     228//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     229//       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     230
     231//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     232//     }
     233   
     234//     {
     235//       ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     236     
     237//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     238//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     239//       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     240
     241//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     242//     }
    210243
    211244//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp

    r131 r136  
    3333          PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1);
    3434       
    35         for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
    36           {
    37             PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
    38             PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
    39           }
     35//         for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
     36//           {
     37//             PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
     38//             PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
     39//           }
    4040      }
     41
     42    for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
     43      for (uint32_t j=0; j<_param->_nb_inst_issue; ++j)
     44        {
     45          PORT_WRITE(out_ISSUE_GPR_STATUS_DATA [i][j],0);
     46          PORT_WRITE(out_ISSUE_SPR_STATUS_DATA [i][j],0);
     47        }
    4148
    4249    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp

    r128 r136  
    8484    DELETE2_SIGNAL(out_SPR_WRITE_STATUS_DATA     ,_param->_nb_ooo_engine,_param->_nb_spr_write,1  );
    8585
    86     DELETE2_SIGNAL( in_INSERT_ROB_VAL            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    87     DELETE2_SIGNAL(out_INSERT_ROB_ACK            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    88     DELETE2_SIGNAL( in_INSERT_ROB_RD_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    89     DELETE2_SIGNAL( in_INSERT_ROB_RE_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     86    DELETE1_SIGNAL( in_ISSUE_VAL                 ,_param->_nb_inst_issue,1);
     87    DELETE1_SIGNAL(out_ISSUE_ACK                 ,_param->_nb_inst_issue,1);
     88    DELETE1_SIGNAL( in_ISSUE_OOO_ENGINE_ID       ,_param->_nb_inst_issue,_param->_size_ooo_engine_id);
     89    DELETE1_SIGNAL( in_ISSUE_RD_USE              ,_param->_nb_inst_issue,1);
     90    DELETE1_SIGNAL( in_ISSUE_RE_USE              ,_param->_nb_inst_issue,1);
    9091
    91     DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    92     DELETE2_SIGNAL( in_INSERT_ROB_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    93     DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     92    DELETE2_SIGNAL(out_ISSUE_GPR_STATUS_VAL      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
     93    DELETE2_SIGNAL( in_ISSUE_GPR_STATUS_ACK      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
     94    DELETE2_SIGNAL(out_ISSUE_GPR_STATUS_DATA     ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
    9495
    95     DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    96     DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    97     DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     96    DELETE2_SIGNAL(out_ISSUE_SPR_STATUS_VAL      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
     97    DELETE2_SIGNAL( in_ISSUE_SPR_STATUS_ACK      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
     98    DELETE2_SIGNAL(out_ISSUE_SPR_STATUS_DATA     ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
     99
     100//     DELETE2_SIGNAL( in_INSERT_ROB_VAL            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     101//     DELETE2_SIGNAL(out_INSERT_ROB_ACK            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     102//     DELETE2_SIGNAL( in_INSERT_ROB_RD_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     103//     DELETE2_SIGNAL( in_INSERT_ROB_RE_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     104
     105//     DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     106//     DELETE2_SIGNAL( in_INSERT_ROB_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     107//     DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     108
     109//     DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     110//     DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     111//     DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    98112      }
    99113    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.cpp

    r128 r136  
    2828    if (PORT_READ(in_NRESET))
    2929      {
    30     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    31       for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
    32         {
    33           Tcontrol_t val            = PORT_READ(in_INSERT_ROB_VAL [i][j]);
    34           Tcontrol_t gpr_use        = PORT_READ(in_INSERT_ROB_RD_USE [i][j]);
    35           Tcontrol_t spr_use        = PORT_READ(in_INSERT_ROB_RE_USE [i][j]);
    36           Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]);
    37           Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
    38          
    39           Tcontrol_t ack            = (gpr_status_ack and
    40                                        spr_status_ack);     
    41           Tcontrol_t gpr_status_val = (val     and
    42                                        gpr_use and
    43                                        spr_status_ack);
    44           Tcontrol_t spr_status_val = (val     and
    45                                        spr_use and
    46                                        gpr_status_ack);
     30    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     31      {
     32        Tcontrol_t val            = PORT_READ(in_ISSUE_VAL    [i]);
     33        Tcontrol_t gpr_use        = PORT_READ(in_ISSUE_RD_USE [i]);
     34        Tcontrol_t spr_use        = PORT_READ(in_ISSUE_RE_USE [i]);
     35        Tcontext_t ooo_engine_id  = (_param->_have_port_ooo_engine_id)?PORT_READ(in_ISSUE_VAL [i]):0;
     36        Tcontrol_t gpr_status_ack = PORT_READ(in_ISSUE_GPR_STATUS_ACK [ooo_engine_id][i]);
     37        Tcontrol_t spr_status_ack = PORT_READ(in_ISSUE_SPR_STATUS_ACK [ooo_engine_id][i]);
    4738
    48           log_printf(TRACE,Register_unit_Glue,FUNCTION,"  * insert_rob [%d][%d]",i,j);
    49           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * val            (r) : %d",val           );
    50           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
    51           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
    52           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
    53           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
    54           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
    55           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
    56           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
     39        Tcontrol_t ack            = (gpr_status_ack and
     40                                     spr_status_ack);       
     41        Tcontrol_t gpr_status_val = (val     and
     42                                     gpr_use and
     43                                     spr_status_ack);
     44        Tcontrol_t spr_status_val = (val     and
     45                                     spr_use and
     46                                     gpr_status_ack);
     47       
     48        log_printf(TRACE,Register_unit_Glue,FUNCTION,"  * issue [%d]",i);       
     49        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ooo_engine_id  (w) : %d",ooo_engine_id );
     50        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * val            (r) : %d",val           );
     51        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
     52        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
     53        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
     54        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
     55        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
     56        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
     57        log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
     58       
     59        PORT_WRITE(out_ISSUE_ACK                           [i], ack           );
     60        PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [ooo_engine_id][i], gpr_status_val);
     61        PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [ooo_engine_id][i], spr_status_val);
    5762
    58           PORT_WRITE(out_INSERT_ROB_ACK            [i][j], ack           );
    59           PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val);
    60           PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val);
     63        for (uint32_t j=0; j<_param->_nb_ooo_engine; ++j)
     64          if (j!=ooo_engine_id)
     65            {
     66              PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [j][i], 0);
     67              PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [j][i], 0);
     68            }
    6169        }
    6270      }
    6371    else
    6472      {
    65         for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    66           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
    67             {
    68               PORT_WRITE(out_INSERT_ROB_ACK            [i][j], 0);
    69               PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0);
    70               PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0);
    71             }
     73        for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     74          {
     75            PORT_WRITE(out_ISSUE_ACK               [i], 0);
     76            for (uint32_t j=0; j<_param->_nb_ooo_engine; j++)
     77              {
     78            PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [j][i], 0);
     79            PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [j][i], 0);
     80              }
     81          }
    7282      }
     83
     84//     if (PORT_READ(in_NRESET))
     85//       {
     86//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     87//       for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
     88//         {
     89//           Tcontrol_t val            = PORT_READ(in_INSERT_ROB_VAL [i][j]);
     90//           Tcontrol_t gpr_use        = PORT_READ(in_INSERT_ROB_RD_USE [i][j]);
     91//           Tcontrol_t spr_use        = PORT_READ(in_INSERT_ROB_RE_USE [i][j]);
     92//           Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]);
     93//           Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
     94         
     95//           Tcontrol_t ack            = (gpr_status_ack and
     96//                                        spr_status_ack);         
     97//           Tcontrol_t gpr_status_val = (val     and
     98//                                        gpr_use and
     99//                                        spr_status_ack);
     100//           Tcontrol_t spr_status_val = (val     and
     101//                                        spr_use and
     102//                                        gpr_status_ack);
     103
     104//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"  * insert_rob [%d][%d]",i,j);
     105//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * val            (r) : %d",val           );
     106//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
     107//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
     108//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
     109//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
     110//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
     111//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
     112//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
     113
     114//           PORT_WRITE(out_INSERT_ROB_ACK            [i][j], ack           );
     115//           PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val);
     116//           PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val);
     117//         }
     118//       }
     119//     else
     120//       {
     121//         for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     122//           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
     123//             {
     124//               PORT_WRITE(out_INSERT_ROB_ACK            [i][j], 0);
     125//               PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0);
     126//               PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0);
     127//             }
     128//       }
    73129
    74130    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp

    r88 r136  
    245245
    246246    //-----------------------------------
    247     // INSERT_ROB
     247    // ISSUE
    248248    //-----------------------------------
    249249
    250250    vhdl->set_body ("");
    251251    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    252       {
    253         uint32_t x=_param->_nb_inst_insert_rob [i];
    254         for (uint32_t j=0; j<x; j++)
    255           {
    256             vhdl->set_body ("out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
    257             vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and");
    258             vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
    259 
    260             vhdl->set_body ("out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
    261             vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
    262             vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE         and");
    263             vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
    264 
    265             vhdl->set_body ("out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
    266             vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
    267             vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE         and");
    268             vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
    269           }
    270       }
    271 
    272     //-----------------------------------
    273     // RETIRE_ROB
    274     //-----------------------------------
    275     vhdl->set_body ("");
    276     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    277       {
    278         uint32_t x=_param->_nb_inst_retire_rob [i];
    279         for (uint32_t j=0; j<x; j++)
    280           {
    281             vhdl->set_body ("out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
    282             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    283             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
    284             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    285             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
    286 
    287             vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
    288             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
    289             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE         and");
    290             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
    291             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    292             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
    293 
    294             vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
    295             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
    296             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE         and");
    297             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    298             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    299             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
    300 
    301             vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
    302             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
    303             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE         and");
    304             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    305             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
    306             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
    307 
    308             vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
    309             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
    310             vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE         and");
    311             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
    312             vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
    313             vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK;");
    314           }
    315       }
     252      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
     253        {
     254          vhdl->set_body ("out_ISSUE_"+toString(j)+"_ACK <=");
     255          vhdl->set_body ("\tin_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and");
     256          vhdl->set_body ("\tin_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     257          if (_param->_have_port_ooo_engine_id)
     258            {
     259          vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i));
     260          vhdl->set_body ("else '0'");   
     261            }
     262          vhdl->set_body (";");   
     263         
     264
     265          vhdl->set_body ("out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
     266          vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_VAL            and");
     267          vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_RD_USE         and");
     268          vhdl->set_body ("\tin_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     269          if (_param->_have_port_ooo_engine_id)
     270            {
     271          vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i));
     272          vhdl->set_body ("else '0'");   
     273            }
     274          vhdl->set_body (";");   
     275         
     276          vhdl->set_body ("out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
     277          vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_VAL            and");
     278          vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_RE_USE         and");
     279          vhdl->set_body ("\tin_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     280          if (_param->_have_port_ooo_engine_id)
     281            {
     282          vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i));
     283          vhdl->set_body ("else '0'");   
     284            }
     285          vhdl->set_body (";");   
     286        }
     287   
     288//     //-----------------------------------
     289//     // INSERT_ROB
     290//     //-----------------------------------
     291
     292//     vhdl->set_body ("");
     293//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     294//       {
     295//      uint32_t x=_param->_nb_inst_insert_rob [i];
     296//      for (uint32_t j=0; j<x; j++)
     297//        {
     298//          vhdl->set_body ("out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
     299//          vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and");
     300//          vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
     301
     302//          vhdl->set_body ("out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
     303//          vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
     304//          vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE         and");
     305//          vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
     306
     307//          vhdl->set_body ("out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
     308//          vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
     309//          vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE         and");
     310//          vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
     311//        }
     312//       }
     313
     314//     //-----------------------------------
     315//     // RETIRE_ROB
     316//     //-----------------------------------
     317//     vhdl->set_body ("");
     318//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     319//       {
     320//      uint32_t x=_param->_nb_inst_retire_rob [i];
     321//      for (uint32_t j=0; j<x; j++)
     322//        {
     323//          vhdl->set_body ("out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
     324//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     325//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
     326//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     327//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
     328
     329//          vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
     330//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
     331//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE         and");
     332//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
     333//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     334//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
     335
     336//          vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
     337//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
     338//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE         and");
     339//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     340//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     341//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
     342
     343//          vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
     344//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
     345//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE         and");
     346//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     347//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
     348//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
     349
     350//          vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
     351//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
     352//          vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE         and");
     353//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
     354//          vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
     355//          vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK;");
     356//        }
     357//       }
    316358
    317359    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h

    r88 r136  
    4040  public : uint32_t  * _nb_general_register      ;
    4141  public : uint32_t  * _nb_special_register      ;
    42   public : uint32_t  * _nb_inst_insert_rob       ;
    43   public : uint32_t  * _nb_inst_retire_rob       ;
     42  public : uint32_t    _nb_inst_issue            ;
     43//   public : uint32_t  * _nb_inst_insert_rob       ;
     44//   public : uint32_t  * _nb_inst_retire_rob       ;
    4445
    4546//public : bool        _have_port_ooo_engine_id  ;
     
    7374                        uint32_t  * nb_general_register      ,
    7475                        uint32_t  * nb_special_register      ,
    75                         uint32_t  * nb_inst_insert_rob       ,
    76                         uint32_t  * nb_inst_retire_rob       ,
     76                        uint32_t    nb_inst_issue            ,
     77//                      uint32_t  * nb_inst_insert_rob       ,
     78//                      uint32_t  * nb_inst_retire_rob       ,
    7779                        bool        is_toplevel=false);
    7880
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h

    r131 r136  
    9393  public    : SC_IN (Tspecial_address_t)   **  in_SPR_WRITE_NUM_REG            ;
    9494  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA               ;
     95
     96    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     97  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_VAL                    ;
     98  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_ACK                    ;
     99  public    : SC_IN (Tcontext_t        )   **  in_ISSUE_OOO_ENGINE_ID          ;
     100  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_RD_USE                 ;
     101  public    : SC_IN (Tgeneral_address_t)   **  in_ISSUE_RD_NUM_REG             ; // use=1 : status[num_reg]<- 0
     102  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_RE_USE                 ;
     103  public    : SC_IN (Tspecial_address_t)   **  in_ISSUE_RE_NUM_REG             ;
    95104   
    96     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    97   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL               ;
    98   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK               ;
    99   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE            ;
    100   public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG        ; // use=1 : status[num_reg]<- 0
    101   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE            ;
    102   public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG        ;
     105//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     106//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL               ;
     107//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK               ;
     108//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE            ;
     109//   public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG        ; // use=1 : status[num_reg]<- 0
     110//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE            ;
     111//   public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG        ;
    103112
    104113//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters.cpp

    r124 r136  
    3333                          uint32_t  * nb_general_register      ,
    3434                          uint32_t  * nb_special_register      ,
    35                           uint32_t  * nb_inst_insert_rob       ,
    36                           uint32_t  * nb_inst_retire_rob       ,
     35                          uint32_t    nb_inst_issue            ,
     36//                        uint32_t  * nb_inst_insert_rob       ,
     37//                        uint32_t  * nb_inst_retire_rob       ,
    3738                          bool        is_toplevel              )
    3839  {
     
    5354    _nb_general_register       = nb_general_register      ;
    5455    _nb_special_register       = nb_special_register      ;
    55     _nb_inst_insert_rob        = nb_inst_insert_rob       ;
    56     _nb_inst_retire_rob        = nb_inst_retire_rob       ;
     56    _nb_inst_issue             = nb_inst_issue            ;
     57//     _nb_inst_insert_rob        = nb_inst_insert_rob       ;
     58//     _nb_inst_retire_rob        = nb_inst_retire_rob       ;
    5759
    5860    _size_gpr_address = log2(nb_general_register [0]);
     
    101103          (_nb_gpr_read ,
    102104//         _nb_gpr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i],
    103            _nb_gpr_write+_nb_inst_insert_rob[i],
     105//            _nb_gpr_write+_nb_inst_insert_rob[i],
     106           _nb_gpr_write+_nb_inst_issue,
    104107           0,
    105108           nb_general_register[i],
     
    122125          (_nb_spr_read ,
    123126//         _nb_spr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i],
    124            _nb_spr_write+_nb_inst_insert_rob[i],
     127//         _nb_spr_write+_nb_inst_insert_rob[i],
     128           _nb_spr_write+_nb_inst_issue,
    125129           0,
    126130           nb_special_register[i],
     
    134138      }
    135139   
    136     _param_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters  (_nb_ooo_engine        ,
    137                                                                                                                                            size_general_data    ,
    138                                                                                                                                            size_special_data    ,
    139                                                                                                                                           _nb_gpr_read          ,
    140                                                                                                                                           _nb_spr_read          ,   
    141                                                                                                                                           _nb_gpr_write         ,
    142                                                                                                                                           _nb_spr_write         ,
    143                                                                                                                                           _nb_inst_insert_rob   ,
    144                                                                                                                                           _nb_inst_retire_rob   );
     140    _param_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters 
     141      (_nb_ooo_engine        ,
     142        size_general_data    ,
     143        size_special_data    ,
     144       _nb_gpr_read          ,
     145       _nb_spr_read          ,   
     146       _nb_gpr_write         ,
     147       _nb_spr_write         ,
     148       _nb_inst_issue
     149//        _nb_inst_insert_rob   ,
     150//        _nb_inst_retire_rob   
     151       );
    145152   
    146153    test();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp

    r81 r136  
    3939    xml. singleton_begin("nb_spr_port_read_by_bank "); xml.attribut("value",toString(_nb_spr_port_read_by_bank )); xml.singleton_end();
    4040    xml. singleton_begin("nb_spr_port_write_by_bank"); xml.attribut("value",toString(_nb_spr_port_write_by_bank)); xml.singleton_end();
     41    xml. singleton_begin("nb_inst_issue            "); xml.attribut("value",toString(_nb_inst_issue            )); xml.singleton_end();
    4142   
    42     xml. balise_open("multi_ooo_engine");
    43     for (uint32_t i=0; i<_nb_ooo_engine; i++)
    44       {
    45         xml.  balise_open_begin("ooo_engine");
    46         xml.   attribut("id", toString(i));
    47         xml.  balise_open_end();
    48         xml.   singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
    49         xml.   singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
    50         xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
    51         xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
    52         xml.  balise_close();
    53       }
    54     xml. balise_close();
     43//     xml. balise_open("multi_ooo_engine");
     44//     for (uint32_t i=0; i<_nb_ooo_engine; i++)
     45//       {
     46//      xml.  balise_open_begin("ooo_engine");
     47//      xml.   attribut("id", toString(i));
     48//      xml.  balise_open_end();
     49//      xml.   singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
     50//      xml.   singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
     51//      xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
     52//      xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
     53//      xml.  balise_close();
     54//       }
     55//     xml. balise_close();
    5556
    5657//     xml. text (_param_glue->print(depth+1));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp

    r131 r136  
    3535    ,_usage            (usage)
    3636  {
    37     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
     37    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    3838
    3939// #if DEBUG_Register_unit == true
     
    4343// #endif   
    4444
    45     log_printf(INFO,Register_unit,FUNCTION,"Allocation");
     45    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4646    allocation (
    4747#ifdef STATISTICS
     
    6363      {
    6464        // generate the vhdl
    65         log_printf(INFO,Register_unit,FUNCTION,"Generate the vhdl");
     65        log_printf(INFO,Register_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6666       
    6767        vhdl();
     
    7373      {
    7474//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    75     log_printf(INFO,Register_unit,FUNCTION,"Method - transition");
     75    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7676
    7777    SC_METHOD (transition);
     
    8585      }
    8686#endif
    87     log_printf(FUNC,Register_unit,FUNCTION,"End");
     87    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> End"),_name.c_str());
    8888  };
    8989 
     
    9292  Register_unit::~Register_unit (void)
    9393  {
    94     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
     94    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    9595
    9696#ifdef STATISTICS
    9797    if (usage_is_set(_usage,USE_STATISTICS))
    9898      {
    99         log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file");
     99        log_printf(INFO,Register_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    100100        delete _stat;
    101101      }
    102102#endif
    103103
    104     log_printf(INFO,Register_unit,FUNCTION,"Deallocation");
     104    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    105105    deallocation ();
    106106
    107     log_printf(FUNC,Register_unit,FUNCTION,"End");
     107    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> End"),_name.c_str());
    108108  };
    109109
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp

    r131 r136  
    106106    }
    107107
    108     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     108    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    109109    {
    110       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     110      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (issue)"),_param->_nb_inst_issue);
    111111     
    112       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL       ,VAL                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    113       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK       ,ACK                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    114       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    115       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_gpr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    116       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    117       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_spr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     112      ALLOC1_VALACK_IN ( in_ISSUE_VAL          ,VAL);
     113      ALLOC1_VALACK_OUT(out_ISSUE_ACK          ,ACK);
     114      ALLOC1_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
     115      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_USE       ,"rd_use"       ,Tcontrol_t        ,1                          );
     116      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_NUM_REG   ,"rd_num_reg"   ,Tgeneral_address_t,_param->_size_gpr_address  );
     117      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_USE       ,"re_use"       ,Tcontrol_t        ,1                          );
     118      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_NUM_REG   ,"re_num_reg"   ,Tspecial_address_t,_param->_size_spr_address  );
    118119     
    119       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     120      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
    120121    }
     122
     123//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     124//     {
     125//       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     126     
     127//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL       ,VAL                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     128//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK       ,ACK                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     129//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     130//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_gpr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     131//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     132//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_spr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     133     
     134//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     135//     }
    121136
    122137//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    375390    // -------------------------------------------------------------------   
    376391    {
     392      uint32_t x=0;
     393
    377394      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    378395        {
     
    413430            }
    414431
    415           uint32_t x=0;
    416432          for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    417433            {
     
    439455            }
    440456         
    441           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
    442             {
    443               dest = _name+"_glue";
    444              
    445 #ifdef POSITION
    446               _component->interface_map (src ,    "write_"+toString(j),
    447                                          dest,"insert_rob_gpr_status_"+toString(i)+"_"+toString(j));
    448 #endif
    449 
    450               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
    451                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
    452               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
    453                                        dest, "in_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
    454               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
    455                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
    456 //                                     dest,"out_CONST_0");
    457              
    458               dest = _name;
    459              
    460               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
    461                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
    462 
    463               x++;
    464             }
     457//        for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
     458//          {
     459//               dest = _name+"_glue";
     460             
     461// #ifdef POSITION
     462//               _component->interface_map (src ,    "write_"+toString(j),
     463//                                          dest,"insert_rob_gpr_status_"+toString(i)+"_"+toString(j));
     464// #endif
     465
     466//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
     467//                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
     468//               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
     469//                                        dest, "in_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     470//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
     471//                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
     472// //                                     dest,"out_CONST_0");
     473             
     474//               dest = _name;
     475             
     476//               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
     477//                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
     478
     479//               x++;
     480//          }
     481
     482      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
     483        {
     484          dest = _name+"_glue";
     485         
     486#ifdef POSITION
     487          _component->interface_map (src ,"write_"+toString(j),
     488                                     dest,"issue_gpr_status_"+toString(i)+"_"+toString(j));
     489#endif
     490
     491          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
     492                                   dest,"out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
     493          COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
     494                                   dest, "in_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     495          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
     496                                   dest,"out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
     497//                                 dest,"out_CONST_0");
     498             
     499          dest = _name;
     500             
     501          PORT_MAP     (_component,src , "in_WRITE_"+toString(x)+"_ADDRESS",
     502                                   dest, "in_ISSUE_"+toString(j)+"_RD_NUM_REG");
     503
     504          x++;
     505        }
    465506        }
    466507    }// gpr_status
     
    534575    // -------------------------------------------------------------------   
    535576    {
     577      uint32_t x=0;
    536578      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    537579        {
     
    572614            }
    573615
    574           uint32_t x=0;
    575616          for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    576617            {
     
    597638              x++;
    598639            }
     640
     641//        for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
     642//          {
     643//               dest = _name+"_glue";
     644             
     645// #ifdef POSITION
     646//               _component->interface_map (src ,    "write_"+toString(x),
     647//                                          dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
     648// #endif
     649
     650//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
     651//                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
     652//               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
     653//                                        dest, "in_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     654//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
     655//                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
     656// //                                     dest,"out_CONST_0");
     657
     658//               dest = _name;
     659             
     660//               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
     661//                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
     662
     663//               x++;
     664//          }
    599665         
    600           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
    601             {
    602               dest = _name+"_glue";
    603              
    604 #ifdef POSITION
    605               _component->interface_map (src ,    "write_"+toString(x),
    606                                          dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
    607 #endif
    608 
    609               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
    610                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
    611               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
    612                                        dest, "in_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
    613               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
    614                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
    615 //                                     dest,"out_CONST_0");
    616 
    617               dest = _name;
    618              
    619               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
    620                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
    621 
    622               x++;
    623             }
     666      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
     667        {
     668          dest = _name+"_glue";
     669         
     670#ifdef POSITION
     671          _component->interface_map (src ,    "write_"+toString(x),
     672                                     dest,"issue_spr_status_"+toString(i)+"_"+toString(j));
     673#endif
     674         
     675          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
     676                                   dest,"out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
     677          COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
     678                                   dest, "in_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
     679          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
     680                                   dest,"out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
     681//                                 dest,"out_CONST_0");
     682
     683          dest = _name;
     684             
     685          PORT_MAP     (_component,src , "in_WRITE_"+toString(x)+"_ADDRESS",
     686                                   dest, "in_ISSUE_"+toString(j)+"_RE_NUM_REG");
     687         
     688          x++;
     689        }
     690
    624691        }
    625692    }// spr_status
     
    751818        }
    752819
    753       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     820//       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     821//      {
     822//        uint32_t x = _param->_nb_inst_insert_rob [i];
     823
     824//        for (uint32_t j=0; j<x; j++)
     825//          {
     826//               dest = _name;
     827
     828// #ifdef POSITION
     829//               _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
     830//                                          dest,"insert_rob_"+toString(i)+"_"+toString(j));
     831// #endif
     832
     833//            PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
     834//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
     835//            PORT_MAP(_component,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
     836//                                   dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
     837//            PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE",
     838//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE");
     839//            PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE",
     840//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE");
     841             
     842//               // out_INSERT_ROB_GPR_STATUS_VAL - gpr_status.  in_WRITE_VAL
     843//               //  in_INSERT_ROB_GPR_STATUS_ACK - gpr_status. out_WRITE_ACK
     844//               // out_INSERT_ROB_GPR_STATUS_DATA- gpr_status.  in_WRITE_DATA
     845//               // out_INSERT_ROB_SPR_STATUS_VAL - spr_status.  in_WRITE_VAL
     846//               //  in_INSERT_ROB_SPR_STATUS_ACK - spr_status. out_WRITE_ACK
     847//               //  in_INSERT_ROB_SPR_STATUS_DATA- spr_status. out_WRITE_DATA
     848//          }
     849//      }
     850
     851      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
    754852        {
    755           uint32_t x = _param->_nb_inst_insert_rob [i];
    756 
    757           for (uint32_t j=0; j<x; j++)
    758             {
    759               dest = _name;
    760 
    761 #ifdef POSITION
    762               _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
    763                                          dest,"insert_rob_"+toString(i)+"_"+toString(j));
    764 #endif
    765 
    766               PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
    767                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
    768               PORT_MAP(_component,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
    769                                   dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
    770               PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE",
    771                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE");
    772               PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE",
    773                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE");
    774              
    775               // out_INSERT_ROB_GPR_STATUS_VAL - gpr_status.  in_WRITE_VAL
    776               //  in_INSERT_ROB_GPR_STATUS_ACK - gpr_status. out_WRITE_ACK
    777               // out_INSERT_ROB_GPR_STATUS_DATA- gpr_status.  in_WRITE_DATA
    778               // out_INSERT_ROB_SPR_STATUS_VAL - spr_status.  in_WRITE_VAL
    779               //  in_INSERT_ROB_SPR_STATUS_ACK - spr_status. out_WRITE_ACK
    780               //  in_INSERT_ROB_SPR_STATUS_DATA- spr_status. out_WRITE_DATA
    781             }
     853          dest = _name;
     854         
     855#ifdef POSITION
     856          _component->interface_map (src ,"issue_"+toString(i),
     857                                     dest,"issue_"+toString(i));
     858#endif
     859
     860          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_VAL",
     861                              dest, "in_ISSUE_"+toString(i)+"_VAL");
     862          PORT_MAP(_component,src ,"out_ISSUE_"+toString(i)+"_ACK",
     863                              dest,"out_ISSUE_"+toString(i)+"_ACK");
     864          if (_param->_have_port_ooo_engine_id == true)
     865          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_OOO_ENGINE_ID",
     866                              dest, "in_ISSUE_"+toString(i)+"_OOO_ENGINE_ID");
     867          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_RD_USE",
     868                              dest, "in_ISSUE_"+toString(i)+"_RD_USE");
     869          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_RE_USE",
     870                              dest, "in_ISSUE_"+toString(i)+"_RE_USE");
     871             
     872          // out_ISSUE_GPR_STATUS_VAL - gpr_status. in_WRITE_VAL
     873          //  in_ISSUE_GPR_STATUS_ACK - gpr_status.out_WRITE_ACK
     874          // out_ISSUE_GPR_STATUS_DATA- gpr_status. in_WRITE_DATA
     875          // out_ISSUE_SPR_STATUS_VAL - spr_status. in_WRITE_VAL
     876          //  in_ISSUE_SPR_STATUS_ACK - spr_status.out_WRITE_ACK
     877          //  in_ISSUE_SPR_STATUS_DATA- spr_status.out_WRITE_DATA
    782878        }
     879
    783880    }// glue
    784881
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_deallocation.cpp

    r128 r136  
    5454        DELETE1_SIGNAL( in_SPR_WRITE_DATA         ,_param->_nb_spr_write,_param->_size_special_data);
    5555               
    56         DELETE2_SIGNAL( in_INSERT_ROB_VAL         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    57         DELETE2_SIGNAL(out_INSERT_ROB_ACK         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    58         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    59         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_gpr_address);
    60         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    61         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_spr_address);
     56        DELETE1_SIGNAL( in_ISSUE_VAL          ,_param->_nb_inst_issue,1);
     57        DELETE1_SIGNAL(out_ISSUE_ACK          ,_param->_nb_inst_issue,1);
     58        DELETE1_SIGNAL( in_ISSUE_OOO_ENGINE_ID,_param->_nb_inst_issue,_param->_size_ooo_engine_id);
     59        DELETE1_SIGNAL( in_ISSUE_RD_USE       ,_param->_nb_inst_issue,1);
     60        DELETE1_SIGNAL( in_ISSUE_RD_NUM_REG   ,_param->_nb_inst_issue,_param->_size_gpr_address);
     61        DELETE1_SIGNAL( in_ISSUE_RE_USE       ,_param->_nb_inst_issue,1);
     62        DELETE1_SIGNAL( in_ISSUE_RE_NUM_REG   ,_param->_nb_inst_issue,_param->_size_spr_address);
     63
     64//         DELETE2_SIGNAL( in_INSERT_ROB_VAL         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     65//         DELETE2_SIGNAL(out_INSERT_ROB_ACK         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     66//         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     67//         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_gpr_address);
     68//         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     69//         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_spr_address);
    6270
    6371//     delete []  in_RETIRE_ROB_VAL               ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h

    r122 r136  
    8080  public    : SC_IN (Toperation_t      )   **  in_EXECUTE_LOOP_IN_OPERATION            ;//[nb_read_unit]
    8181  public    : SC_IN (Ttype_t           )   **  in_EXECUTE_LOOP_IN_TYPE                 ;//[nb_read_unit]
     82  public    : SC_IN (Tcontrol_t        )   **  in_EXECUTE_LOOP_IN_CANCEL               ;//[nb_read_unit]
    8283  public    : SC_IN (Tlsq_ptr_t        )   **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE;//[nb_read_unit]
    8384  public    : SC_IN (Tlsq_ptr_t        )   **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ;//[nb_read_unit]
     
    106107//public    : SC_OUT(Toperation_t      )   ** out_EXECUTE_LOOP_OUT_OPERATION           ;//[nb_write_unit]
    107108//public    : SC_OUT(Ttype_t           )   ** out_EXECUTE_LOOP_OUT_TYPE                ;//[nb_write_unit]
     109  public    : SC_OUT(Tcontrol_t        )   ** out_EXECUTE_LOOP_OUT_CANCEL              ;//[nb_write_unit]
    108110  public    : SC_OUT(Tspecial_data_t   )   ** out_EXECUTE_LOOP_OUT_FLAGS               ;//[nb_write_unit]
    109111  public    : SC_OUT(Texception_t      )   ** out_EXECUTE_LOOP_OUT_EXCEPTION           ;//[nb_write_unit]
     
    129131  public    : SC_IN (Tdcache_error_t   )  ***  in_DCACHE_RSP_ERROR                     ;//[nb_load_store_queue][nb_cache_port]
    130132   
    131     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    132   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;//[nb_ooo_engine][nb_inst_insert_rob]
    133   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;//[nb_ooo_engine][nb_inst_insert_rob]
    134   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
    135   public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
    136   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
    137   public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
     133//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     134//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;//[nb_ooo_engine][nb_inst_insert_rob]
     135//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;//[nb_ooo_engine][nb_inst_insert_rob]
     136//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
     137//   public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
     138//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
     139//   public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
    138140
    139141//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h

    r120 r136  
    8888  public : uint32_t            * _nb_general_register                           ; //[nb_ooo_engine]
    8989  public : uint32_t            * _nb_special_register                           ; //[nb_ooo_engine]
    90   public : uint32_t            * _nb_inst_insert_rob                            ; //[nb_ooo_engine]
    91   public : uint32_t            * _nb_inst_retire_rob                            ; //[nb_ooo_engine]
     90//public : uint32_t            * _nb_inst_insert_rob                            ; //[nb_ooo_engine]
     91//public : uint32_t            * _nb_inst_retire_rob                            ; //[nb_ooo_engine]
    9292    //  * network
    9393  public : Tpriority_t           _execution_unit_to_write_unit_priority         ;
     
    105105  public : bool                * _num_thread_valid                              ; //[nb_thread]
    106106
     107  public : uint32_t              _nb_thread                    ;
    107108  public : uint32_t              _nb_execute_unit              ;
    108109  public : uint32_t            * _nb_execute_unit_port         ;
     
    119120  public : bool                  _have_port_dcache_context_id  ;
    120121   
     122  public : uint32_t              _max_nb_inst_memory     ;
    121123  public : uint32_t              _max_nb_general_register;
    122124  public : uint32_t              _max_nb_special_register;
     
    186188                        uint32_t            * nb_general_register                           ,//[nb_ooo_engine]
    187189                        uint32_t            * nb_special_register                           ,//[nb_ooo_engine]
    188                         uint32_t            * nb_inst_insert_rob                            ,//[nb_ooo_engine]
    189                         uint32_t            * nb_inst_retire_rob                            ,//[nb_ooo_engine]
     190//                      uint32_t            * nb_inst_insert_rob                            ,//[nb_ooo_engine]
     191//                      uint32_t            * nb_inst_retire_rob                            ,//[nb_ooo_engine]
    190192                       
    191193                        Tpriority_t           execution_unit_to_write_unit_priority         ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp

    r123 r136  
    3434    ,_usage            (usage)
    3535  {
    36     log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
     36    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> Begin"),_name.c_str());
    3737
    3838// #if DEBUG_Execute_loop == true
     
    4242// #endif   
    4343
    44     log_printf(INFO,Execute_loop,FUNCTION,"Allocation");
     44    log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4545
    4646    allocation (
     
    5353    if (usage_is_set(_usage,USE_STATISTICS))
    5454      {
    55         log_printf(INFO,Execute_loop,FUNCTION,"Allocation of statistics");
     55        log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5656
    5757        statistics_declaration(param_statistics);
     
    6363      {
    6464        // generate the vhdl
    65         log_printf(INFO,Execute_loop,FUNCTION,"Generate the vhdl");
     65        log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6666       
    6767        vhdl();
     
    7272    if (usage_is_set(_usage,USE_SYSTEMC))
    7373      {
    74         log_printf(INFO,Execute_loop,FUNCTION,"Method - transition");
     74        log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7575
    7676        SC_METHOD (transition);
     
    8484#endif
    8585      }
    86     log_printf(FUNC,Execute_loop,FUNCTION,"End");
     86    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> End"),_name.c_str());
    8787  };
    8888   
     
    9191  Execute_loop::~Execute_loop (void)
    9292  {
    93     log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
     93    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> Begin"),_name.c_str());
    9494
    9595#ifdef STATISTICS
    9696    if (usage_is_set(_usage,USE_STATISTICS))
    9797      {
    98         log_printf(INFO,Execute_loop,FUNCTION,"Generate Statistics file");
     98        log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    9999       
    100100        delete _stat;
     
    102102#endif
    103103
    104     log_printf(INFO,Execute_loop,FUNCTION,"Deallocation");
     104    log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    105105    deallocation ();
    106106
    107     log_printf(FUNC,Execute_loop,FUNCTION,"End");
     107    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> End"),_name.c_str());
    108108  };
    109109
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_allocation.cpp

    r122 r136  
    6565       ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation);
    6666       ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type);         
     67       ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
    6768       ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    6869       ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
     
    9697//     ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation);
    9798//     ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type);
     99       ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1);
    98100       ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data);
    99101       ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception);
     
    133135     }
    134136
    135     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    136      {
    137        ALLOC2_INTERFACE_BEGIN("insert_rob",IN, EAST, "Rename's stage : insert a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    138        
    139        _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    140        _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    141 
    142        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    143        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    144        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    145        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    146 
    147        ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
    148      }
     137//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     138//      {
     139//        ALLOC2_INTERFACE_BEGIN("insert_rob",IN, EAST, "Rename's stage : insert a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     140       
     141//        _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     142//        _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     143
     144//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     145//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     146//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     147//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     148
     149//        ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
     150//      }
    149151
    150152//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    440442         }
    441443
    442        
     444       // -----[ Interface "issue" ]-----------------------------------------
     445       for (uint32_t i=0; i<_param->_nb_read_unit; i++)
     446         {
     447           dest = _name;
     448
     449           PORT_MAP(_component ,src , "in_ISSUE_"+toString(i)+"_VAL",
     450                                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_VAL");
     451           PORT_MAP(_component ,src ,"out_ISSUE_"+toString(i)+"_ACK",
     452                                dest,"out_EXECUTE_LOOP_IN_"+toString(i)+"_ACK");
     453
     454           //out_ISSUE_READ_UNIT_VAL   
     455           // in_ISSUE_READ_UNIT_ACK   
     456           //out_ISSUE_REGISTER_UNIT_VAL
     457           // in_ISSUE_REGISTER_UNIT_ACK
     458         }
    443459     }
    444460
     
    466482           // ~~~~~[ Interface "read_unit_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    467483           {
     484             dest = _name+"_glue";
     485
     486             COMPONENT_MAP(_component ,src , "in_READ_UNIT_IN_VAL"                  ,
     487                                       dest,"out_ISSUE_"+toString(i)+"_READ_UNIT_VAL");
     488             COMPONENT_MAP(_component ,src ,"out_READ_UNIT_IN_ACK"                 
     489                                      ,dest, "in_ISSUE_"+toString(i)+"_READ_UNIT_ACK");
     490
    468491             dest = _name;
    469492#ifdef POSITION
     
    472495#endif
    473496
    474              PORT_MAP(_component ,src , "in_READ_UNIT_IN_VAL"                  ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_VAL"                  );
    475              PORT_MAP(_component ,src ,"out_READ_UNIT_IN_ACK"                  ,dest ,"out_EXECUTE_LOOP_IN_"+toString(i)+"_ACK"                  );
    476497             if (_param->_have_port_context_id)
    477498             PORT_MAP(_component ,src , "in_READ_UNIT_IN_CONTEXT_ID"           ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_CONTEXT_ID"           );
     
    484505             PORT_MAP(_component ,src , "in_READ_UNIT_IN_OPERATION"            ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_OPERATION"            );
    485506             PORT_MAP(_component ,src , "in_READ_UNIT_IN_TYPE"                 ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_TYPE"                 );
     507             PORT_MAP(_component ,src , "in_READ_UNIT_IN_CANCEL"               ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_CANCEL"               );
    486508             PORT_MAP(_component ,src , "in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE",dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE");
    487509             PORT_MAP(_component ,src , "in_READ_UNIT_IN_STORE_QUEUE_PTR_READ" ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_STORE_QUEUE_PTR_READ" );
     
    533555               COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j               )+"_TYPE"                 ,
    534556                                         dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_TYPE"                 );
     557               COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j               )+"_CANCEL"               ,
     558                                         dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_CANCEL"               );
    535559               COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j               )+"_STORE_QUEUE_PTR_WRITE",
    536560                                         dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE");
     
    818842               COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_TYPE"                 ,
    819843                                         dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_TYPE"                 );
     844               COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_CANCEL"               ,
     845                                         dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_CANCEL"               );
    820846               COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE",
    821847                                         dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_STORE_QUEUE_PTR_WRITE");
     
    876902//             COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_TYPE"         ,
    877903//                                       dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_TYPE"         );
     904               COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_CANCEL"       ,
     905                                         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_CANCEL"       );
    878906               COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_WRITE_RD"     ,
    879907                                         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_WRITE_RD"     );
     
    946974                 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_TYPE"                 ,
    947975                                           dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_TYPE"                 );
     976                 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_CANCEL"               ,
     977                                           dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_CANCEL"               );
    948978                 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_STORE_QUEUE_PTR_WRITE",
    949979                                           dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE");
     
    10051035//             COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_TYPE"         ,
    10061036//                                       dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_TYPE"         );
     1037               COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_CANCEL"       ,
     1038                                         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_CANCEL"       );
    10071039               COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_WRITE_RD"     ,
    10081040                                         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_WRITE_RD"     );
     
    11151147//         COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_TYPE"         ,
    11161148//                                   dest,"out_WRITE_UNIT_IN_"+toString(i)+"_TYPE"         );
     1149           COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_CANCEL"       ,
     1150                                     dest,"out_WRITE_UNIT_IN_"+toString(i)+"_CANCEL"       );
    11171151           COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_WRITE_RD"     ,
    11181152                                     dest,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RD"     );
     
    11631197//         PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_TYPE"         ,
    11641198//                              dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_TYPE"         );
     1199           PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_CANCEL"       ,
     1200                                dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_CANCEL"       );
    11651201           PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_FLAGS"        ,
    11661202                                dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_FLAGS"        );
     
    12791315#endif
    12801316       
    1281            COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_VAL"          ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_VAL"          );
    1282            COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_"+toString(i)+"_ACK"          ,dest, "in_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_ACK"          );
     1317           COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_VAL"          ,
     1318                                     dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_VAL"          );
     1319           COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_"+toString(i)+"_ACK"          ,
     1320                                     dest, "in_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_ACK"          );
    12831321           if (_param->_have_port_ooo_engine_id)
    1284            COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_OOO_ENGINE_ID");
    1285            COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_NUM_REG"      ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_NUM_REG"      );
    1286            COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_DATA"         ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA"         );
     1322           COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",
     1323                                     dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_OOO_ENGINE_ID");
     1324           COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_NUM_REG"      ,
     1325                                     dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_NUM_REG"      );
     1326           COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_DATA"         ,
     1327                                     dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA"         );
    12871328         }
    12881329
     
    13211362           COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_DATA"         ,dest,"out_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA"         );
    13221363         }
     1364
     1365       // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1366       for (uint32_t i=0; i<_param->_nb_read_unit; i++)
     1367         {
     1368           dest = _name+"_glue";
     1369
     1370           COMPONENT_MAP(_component ,src , "in_ISSUE_"+toString(i)+"_VAL",
     1371                                     dest,"out_ISSUE_"+toString(i)+"_REGISTER_UNIT_VAL");
     1372           COMPONENT_MAP(_component ,src ,"out_ISSUE_"+toString(i)+"_ACK",
     1373                                     dest, "in_ISSUE_"+toString(i)+"_REGISTER_UNIT_ACK");
     1374
     1375           dest = _name;
     1376#ifdef POSITION
     1377           _component->interface_map (src ,"issue_"+toString(i),
     1378                                      dest,"issue_"+toString(i));
     1379#endif
     1380
     1381           if (_param->_have_port_ooo_engine_id)
     1382           PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_OOO_ENGINE_ID",
     1383                                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_OOO_ENGINE_ID");
     1384           PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RD_USE"    ,
     1385                                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_WRITE_RD"  );
     1386           PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RE_USE"    ,
     1387                                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_WRITE_RE"  );
     1388           PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RD_NUM_REG",
     1389                                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_NUM_REG_RD");
     1390           PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RE_NUM_REG",
     1391                                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_NUM_REG_RE");
     1392         }
    13231393   
    1324        // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1325        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    1326          {
    1327            uint32_t x=_param->_nb_inst_insert_rob [i];
     1394//        // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     1395//        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     1396//       {
     1397//         uint32_t x=_param->_nb_inst_insert_rob [i];
    13281398           
    1329            for (uint32_t j=0; j<x; j++)
    1330              {
    1331                dest = _name;
    1332 #ifdef POSITION
    1333                _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
    1334                                           dest,"insert_rob_"+toString(i)+"_"+toString(j));
    1335 #endif
    1336 
    1337                PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       ,
    1338                                     dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       );
    1339                PORT_MAP(_component ,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       ,
    1340                                     dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       );
    1341                PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    ,
    1342                                     dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    );
    1343                PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG",
    1344                                     dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
    1345                PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    ,
    1346                                     dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    );
    1347                PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG",
    1348                                     dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
    1349              }
    1350          }
     1399//         for (uint32_t j=0; j<x; j++)
     1400//           {
     1401//             dest = _name;
     1402// #ifdef POSITION
     1403//             _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
     1404//                                        dest,"insert_rob_"+toString(i)+"_"+toString(j));
     1405// #endif
     1406
     1407//             PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       ,
     1408//                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       );
     1409//             PORT_MAP(_component ,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       ,
     1410//                                  dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       );
     1411//             PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    ,
     1412//                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    );
     1413//             PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG",
     1414//                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
     1415//             PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    ,
     1416//                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    );
     1417//             PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG",
     1418//                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
     1419//           }
     1420//       }
    13511421
    13521422//        // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    17561826
    17571827    log_printf(FUNC,Execute_loop,FUNCTION,"End");
    1758   };
     1828     };
    17591829
    17601830}; // end namespace execute_loop
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp

    r122 r136  
    3535        DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_OPERATION            ,_param->_nb_read_unit,_param->_size_operation);
    3636        DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_TYPE                 ,_param->_nb_read_unit,_param->_size_type);         
     37        DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_CANCEL               ,_param->_nb_read_unit,1);
    3738        DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit,_param->_size_store_queue_ptr);
    3839        DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit,_param->_size_store_queue_ptr);
     
    6061//      DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_OPERATION    ,_param->_nb_write_unit,_param->_size_operation);
    6162//      DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_TYPE         ,_param->_nb_write_unit,_param->_size_type);
     63        DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_CANCEL       ,_param->_nb_write_unit,1);
    6264        DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_FLAGS        ,_param->_nb_write_unit,_param->_size_special_data);
    6365        DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_EXCEPTION    ,_param->_nb_write_unit,_param->_size_exception);
     
    8183        DELETE2_SIGNAL( in_DCACHE_RSP_ERROR     , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_dcache_error         );
    8284       
    83         DELETE2_SIGNAL( in_INSERT_ROB_VAL       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
    84         DELETE2_SIGNAL(out_INSERT_ROB_ACK       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
    85         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
    86         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_general_register);
    87         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
    88         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_special_register);
     85//         DELETE2_SIGNAL( in_INSERT_ROB_VAL       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
     86//         DELETE2_SIGNAL(out_INSERT_ROB_ACK       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
     87//         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
     88//         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_general_register);
     89//         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
     90//         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_special_register);
    8991       
    9092//         DELETE2_SIGNAL( in_RETIRE_ROB_VAL           ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1                             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters.cpp

    r128 r136  
    6161                          uint32_t            * nb_general_register                       ,//[nb_ooo_engine]
    6262                          uint32_t            * nb_special_register                       ,//[nb_ooo_engine]
    63                           uint32_t            * nb_inst_insert_rob                        ,//[nb_ooo_engine]
    64                           uint32_t            * nb_inst_retire_rob                        ,//[nb_ooo_engine]
     63//                        uint32_t            * nb_inst_insert_rob                        ,//[nb_ooo_engine]
     64//                        uint32_t            * nb_inst_retire_rob                        ,//[nb_ooo_engine]
    6565                         
    6666                          Tpriority_t           execution_unit_to_write_unit_priority     ,
     
    122122    _nb_general_register                        = nb_general_register                  ;
    123123    _nb_special_register                        = nb_special_register                  ;
    124     _nb_inst_insert_rob                         = nb_inst_insert_rob                   ;
    125     _nb_inst_retire_rob                         = nb_inst_retire_rob                   ;
     124//     _nb_inst_insert_rob                         = nb_inst_insert_rob                   ;
     125//     _nb_inst_retire_rob                         = nb_inst_retire_rob                   ;
    126126   
    127127    _execution_unit_to_write_unit_priority      = execution_unit_to_write_unit_priority;
     
    139139
    140140    _nb_execute_unit                            = _nb_functionnal_unit + _nb_load_store_unit;
     141
     142
     143    _nb_thread          = get_nb_thread(_nb_context,
     144                                        _nb_front_end,
     145                                        _nb_ooo_engine);
     146    _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit);
    141147
    142148    ALLOC1(_nb_execute_unit_port                          ,uint32_t,_nb_execute_unit);
     
    194200    _max_size_store_queue    = max<uint32_t>(size_store_queue,nb_load_store_unit);
    195201    _max_size_load_queue     = max<uint32_t>(size_load_queue ,nb_load_store_unit);
    196 
    197     uint32_t _nb_thread = get_nb_thread(_nb_context,
    198                                         _nb_front_end,
    199                                         _nb_ooo_engine);
    200 
    201     uint32_t _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit);
    202202
    203203    ALLOC1(_set_read_unit_source_register_write  ,std::set<uint32_t>,_nb_read_unit);
     
    297297//       }
    298298
    299 //     std::cout << "_set_......." << std::endl;
     299//    std::cout << "_set_......." << std::endl;
    300300
    301301    for (uint32_t i=0; i<_nb_read_unit; i++)
     
    308308            for (uint32_t k=0; k<_nb_thread; k++)
    309309              {
    310 //              std::cout << "     * Thread[" << k << "]" << std::endl;
     310//              std::cout << "     * Thread[" << k << "]" << std::endl;
    311311                if ( (_execution_unit_to_write_unit_table_thread [j][k]) and
    312312                     (_link_read_unit_with_thread [i][k]))
     
    367367        (_nb_gpr_write              ,
    368368         _nb_spr_write              ,
     369         _nb_read_unit              ,
    369370          size_ooo_engine_id        ,
    370371          size_general_register     ,
     
    518519         _nb_general_register       ,
    519520         _nb_special_register       ,
    520          _nb_inst_insert_rob        ,
    521          _nb_inst_retire_rob        );
     521         _nb_read_unit           // ,
     522//       _nb_inst_insert_rob        ,
     523//       _nb_inst_retire_rob       
     524         );
    522525
    523526    _max_size_dcache_context_id = 0;
     
    604607    delete    _param_register_unit;
    605608
    606     uint32_t _nb_thread = get_nb_thread(_nb_context,
    607                                         _nb_front_end,
    608                                         _nb_ooo_engine);
    609     uint32_t _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit);
    610 
    611609    DELETE2(_link_read_unit_with_thread           ,_nb_read_unit,_nb_thread      );
    612610    DELETE2(_link_read_unit_with_write_unit       ,_nb_read_unit,_nb_write_unit  );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_print.cpp

    r88 r136  
    9393        xml. singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
    9494        xml. singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
    95         xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
    96         xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
     95//      xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
     96//      xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
    9797        xml.balise_close();
    9898      }
Note: See TracChangeset for help on using the changeset viewer.