Ignore:
Timestamp:
Jun 8, 2009, 10:43:30 PM (15 years ago)
Author:
rosiere
Message:

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit
Files:
1 added
44 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp

    r122 r123  
    3838    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Load_Store_pointer_unit == true
    41     log_printf(INFO,Load_Store_pointer_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    42 
    43     std::cout << *param << std::endl;
    44 #endif   
     40// #if DEBUG_Load_Store_pointer_unit == true
     41//     log_printf(INFO,Load_Store_pointer_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     42
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_insert.cpp

    r122 r123  
    2525    log_function(Load_Store_pointer_unit,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    // TODO : limité à nb_inst_memory le nombre d'accès par lsq !!!
    2830
     
    134136        // Write output
    135137        internal_INSERT_ACK [i] = ack;
    136         PORT_WRITE(out_INSERT_ACK                   [i], ack);
    137138      }
     139      }
     140    else
     141      {
     142        for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
     143          internal_INSERT_ACK [i] = 0;
     144
     145      }
     146   
     147    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
     148      PORT_WRITE(out_INSERT_ACK [i], internal_INSERT_ACK [i]);
    138149
    139150    log_end(Load_Store_pointer_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_retire.cpp

    r110 r123  
    2424    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
    2525   
     26    if (PORT_READ(in_NRESET))
     27      {
    2628//     bool use_lsq [_param->_nb_load_store_queue];
    2729//     for (uint32_t i=0; i<_param->_nb_load_store_queue; i++)
     
    7779        // Write output
    7880        internal_RETIRE_ACK [i] = ack;
    79         PORT_WRITE(out_RETIRE_ACK                   [i], ack);
    8081      }
     82      }
     83    else
     84      {
     85        for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     86          internal_RETIRE_ACK [i] = 0;
     87      }
     88
     89    for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     90      PORT_WRITE(out_RETIRE_ACK [i], internal_RETIRE_ACK [i]);
     91
    8192   
    8293    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit.cpp

    r121 r123  
    3939    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Dependency_checking_unit == true
    42     log_printf(INFO,Dependency_checking_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    43 
    44     std::cout << *param << std::endl;
    45 #endif   
     41// #if DEBUG_Dependency_checking_unit == true
     42//     log_printf(INFO,Dependency_checking_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     43
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Dependency_checking_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_genMealy.cpp

    r121 r123  
    2626    log_function(Dependency_checking_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830//     Tcontrol_t         val                [_param->_nb_inst_insert];
    2931//     Tcontrol_t         ack                [_param->_nb_inst_insert];
     
    223225        PORT_WRITE(out_RENAME_OUT_NUM_REG_RE_PHY_NEW [i], num_reg_re_phy_new [i]);
    224226      }
     227      }
    225228
    226229    log_end(Dependency_checking_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/include/Free_List_unit.h

    r110 r123  
    9191  public    : SC_IN (Tspecial_address_t)   **  in_PUSH_SPR_NUM_REG;
    9292
     93    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     94#ifdef DEBUG_TEST
     95  public    : SC_OUT(uint32_t  )            * out_INFO_NB_GPR_FREE;
     96  public    : SC_OUT(uint32_t  )            * out_INFO_NB_SPR_FREE;
     97#endif
     98
    9399    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    94100  private   : generic::priority::Priority   * _priority_gpr;
     
    141147#ifdef SYSTEMC                                 
    142148  public  : void        transition                (void);
     149#ifdef DEBUG_TEST
     150  public  : void        genMoore                  (void);
     151#endif
    143152  public  : void        genMealy_pop              (void);
    144153  public  : void        genMealy_push_gpr         (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit.cpp

    r110 r123  
    3939    log_printf(FUNC,Free_List_unit,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Free_List_unit == true
    42     log_printf(INFO,Free_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Free_List_unit == true
     42//     log_printf(INFO,Free_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4343
    44     std::cout << *param << std::endl;
    45 #endif   
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Free_List_unit,FUNCTION,"Allocation");
     
    8585# endif   
    8686
     87#ifdef DEBUG_TEST
     88        log_printf(INFO,Free_List_unit,FUNCTION,"Method - genMoore");
     89
     90        SC_METHOD (genMoore);
     91        dont_initialize ();
     92        sensitive << (*(in_CLOCK)).neg();
     93       
     94# ifdef SYSTEMCASS_SPECIFIC
     95        // List dependency information
     96# endif   
     97#endif
    8798        log_printf(INFO,Free_List_unit,FUNCTION,"Method - genMealy_pop");
    8899
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_allocation.cpp

    r112 r123  
    9292     }
    9393
     94    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     95#ifdef DEBUG_TEST
     96     {
     97       ALLOC0_INTERFACE_BEGIN("info",OUT, NORTH, _("Information"));
     98
     99       ALLOC0_SIGNAL_OUT(out_INFO_NB_GPR_FREE,"nb_gpr_free",uint32_t,_param->_size_general_register+1);
     100       ALLOC0_SIGNAL_OUT(out_INFO_NB_SPR_FREE,"nb_spr_free",uint32_t,_param->_size_special_register+1);
     101
     102       ALLOC0_INTERFACE_END();
     103     }
     104#endif
     105
    94106     if (usage_is_set(_usage,USE_SYSTEMC))
    95107       {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_deallocation.cpp

    r112 r123  
    4545        DELETE1_SIGNAL( in_PUSH_SPR_NUM_REG,_param->_nb_push,_param->_size_special_register);
    4646
     47#ifdef DEBUG_TEST
     48        DELETE0_SIGNAL(out_INFO_NB_GPR_FREE,_param->_size_general_register+1);
     49        DELETE0_SIGNAL(out_INFO_NB_SPR_FREE,_param->_size_special_register+1);
     50#endif
     51
    4752        DELETE1(_gpr_list             ,_param->_nb_bank);
    4853        DELETE1(_spr_list             ,_param->_nb_bank);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_pop.cpp

    r109 r123  
    2626    log_function(Free_List_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    std::list<generic::priority::select_t> * select_gpr = _priority_gpr->select();
    2931    std::list<generic::priority::select_t>::iterator it_gpr=select_gpr->begin();
     
    3234    std::list<generic::priority::select_t>::iterator it_spr=select_spr->begin();
    3335
    34     for (uint32_t i=0; i<_param->_nb_pop; i++)
     36     for (uint32_t i=0; i<_param->_nb_pop; i++)
    3537      {
    3638        log_printf(TRACE,Free_List_unit,FUNCTION,"  * POP [%d]",i);
     
    104106
    105107        internal_POP_ACK [i] = gpr_ack and spr_ack;
    106         PORT_WRITE(out_POP_ACK [i], internal_POP_ACK [i]);
    107108      }
    108109
     
    177178//      PORT_WRITE(out_POP_ACK [i], internal_POP_ACK [i]);
    178179//       }
    179    
     180      }   
     181    else
     182      {
     183        for (uint32_t i=0; i<_param->_nb_pop; i++)
     184          internal_POP_ACK [i] = 0;
     185      }
     186
     187    for (uint32_t i=0; i<_param->_nb_pop; i++)
     188      PORT_WRITE(out_POP_ACK [i], internal_POP_ACK [i]);
     189
    180190
    181191    log_end(Free_List_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_push_gpr.cpp

    r108 r123  
    2626    log_function(Free_List_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    // bank conflit
    2931    bool bank_use [_param->_nb_bank];
     
    5961
    6062        internal_PUSH_GPR_ACK [i] = gpr_ack;
    61         PORT_WRITE(out_PUSH_GPR_ACK [i], internal_PUSH_GPR_ACK [i]);
    6263      }
     64      }
     65    else
     66      {
     67        for (uint32_t i=0; i<_param->_nb_push; i++)
     68          internal_PUSH_GPR_ACK [i] = 0;
     69      }
     70
     71    for (uint32_t i=0; i<_param->_nb_push; i++)
     72      PORT_WRITE(out_PUSH_GPR_ACK [i], internal_PUSH_GPR_ACK [i]);
    6373   
    6474    log_end(Free_List_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_push_spr.cpp

    r108 r123  
    2626    log_function(Free_List_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    bool bank_use [_param->_nb_bank];
    2931    for (uint32_t i=0; i<_param->_nb_bank; i++)
     
    5153
    5254        internal_PUSH_SPR_ACK [i] = spr_ack;
    53         PORT_WRITE(out_PUSH_SPR_ACK [i], internal_PUSH_SPR_ACK [i]);
    5455      }
    55    
     56      }
     57    else
     58      {
     59        for (uint32_t i=0; i<_param->_nb_push; i++)
     60          internal_PUSH_SPR_ACK [i] = 0;
     61      }
     62
     63    for (uint32_t i=0; i<_param->_nb_push; i++)
     64      PORT_WRITE(out_PUSH_SPR_ACK [i], internal_PUSH_SPR_ACK [i]);
     65
    5666    log_end(Free_List_unit,FUNCTION);
    5767  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp

    r122 r123  
    3939    log_printf(FUNC,Register_Address_Translation_unit,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Register_Address_Translation_unit == true
    42     log_printf(INFO,Register_Address_Translation_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    43 
    44     std::cout << *param << std::endl;
    45 #endif   
     41// #if DEBUG_Register_Address_Translation_unit == true
     42//     log_printf(INFO,Register_Address_Translation_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     43
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_genMealy_rename.cpp

    r122 r123  
    2929    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    3030      if (PORT_READ(in_RENAME_VAL [i])) // not in sensitive list : it's to have valide value to array access
    31       {
     31        {
    3232        log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"  * RENAME [%d]",i);
    3333
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_transition.cpp

    r122 r123  
    4040                {
    4141                  rat_gpr_not_speculative    [i][j][k] = gpr++;
    42 //                rat_gpr_speculative        [i][j][k] = gpr++;
    4342                  rat_gpr_speculative_valid  [i][j][k] = false;
    44 //                rat_gpr_update_table       [i][j][k] = false;
     43                  rat_gpr_speculative        [i][j][k] = 0    ; // not necessary
     44                  rat_gpr_update_table       [i][j][k] = false; // not necessary
    4545                }
    4646              for (uint32_t k=0; k<_param->_nb_special_register_logic; k++)
    4747                {
    4848                  rat_spr_not_speculative    [i][j][k] = spr++;
    49 //                rat_spr_speculative        [i][j][k] = spr++;
    5049                  rat_spr_speculative_valid  [i][j][k] = false;
    51 //                rat_spr_update_table       [i][j][k] = false;
     50                  rat_spr_speculative        [i][j][k] = 0    ; // not necessary
     51                  rat_spr_update_table       [i][j][k] = false; // not necessary
    5252                }
    5353            }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue.cpp

    r110 r123  
    3939    log_printf(FUNC,Register_translation_unit_Glue,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Register_translation_unit_Glue == true
    42     log_printf(INFO,Register_translation_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
    43 
    44     std::cout << *param << std::endl;
    45 #endif   
     41// #if DEBUG_Register_translation_unit_Glue == true
     42//     log_printf(INFO,Register_translation_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     43
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Register_translation_unit_Glue,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_genMealy_insert.cpp

    r117 r123  
    2626    log_function(Register_translation_unit_Glue,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    2931      {
     
    8486        PORT_WRITE(out_INSERT_NUM_REG_RE_PHY_NEW           [i], NUM_REG_RE_PHY_NEW);
    8587      }
     88      }
     89//     else
     90//       {
     91//       }
    8692
    8793    log_end(Register_translation_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_genMealy_insert_valack.cpp

    r110 r123  
    2525    log_begin(Register_translation_unit_Glue,FUNCTION);
    2626    log_function(Register_translation_unit_Glue,FUNCTION,_name.c_str());
     27
     28    if (PORT_READ(in_NRESET))
     29      {
    2730    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    2831      {
     
    8689
    8790      }
     91      }
     92    else
     93      {
     94        for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
     95          {
     96#ifdef STATISTICS
     97            internal_INSERT_RENAME_ACK [i] = 0;
     98#endif
     99           
     100            PORT_WRITE(out_INSERT_RENAME_ACK     [i], 0);
     101            PORT_WRITE(out_INSERT_INSERT_VAL     [i], 0);
     102            PORT_WRITE(out_INSERT_RAT_INSERT_VAL [i], 0);
     103            PORT_WRITE(out_INSERT_FREE_LIST_VAL  [i], 0);
     104            PORT_WRITE(out_INSERT_STAT_LIST_VAL  [i], 0);
     105          }
     106      }
    88107
    89108    log_end(Register_translation_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_genMealy_retire.cpp

    r110 r123  
    2626    log_function(Register_translation_unit_Glue,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
    2931      {
     
    6062        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * stat_list_ack  (r): %d",stat_list_ack );
    6163      }
     64      }
     65    else
     66      {
     67        for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     68          {
     69            PORT_WRITE(out_RETIRE_ACK           [i], 0);
     70            PORT_WRITE(out_RETIRE_RAT_VAL       [i], 0);
     71            PORT_WRITE(out_RETIRE_STAT_LIST_VAL [i], 0);
     72          }
     73      }
    6274
    6375    log_end(Register_translation_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h

    r121 r123  
    8282  public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_ACK               ;//[nb_inst_retire]
    8383  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_RESTORE           ;//[nb_inst_retire]
    84 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
    85 //   public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
    86 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
    87 //   public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
    88 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
    89 //   public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
     84//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
     85//public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
     86//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
     87//public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
     88//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
     89//public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
    9090  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_WRITE_RD          ;//[nb_inst_retire]
    9191  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire]
     
    106106  public    : SC_IN (Tcontrol_t)           **  in_PUSH_SPR_ACK             ;//[nb_reg_free]
    107107  public    : SC_OUT(Tspecial_address_t)   ** out_PUSH_SPR_NUM_REG         ;//[nb_reg_free]
     108
     109    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     110#ifdef DEBUG_TEST
     111  public    : SC_IN (bool      )            *  in_INFO_ROB_EMPTY  ;
     112  public    : SC_IN (uint32_t  )            *  in_INFO_NB_GPR_FREE;
     113  public    : SC_IN (uint32_t  )            *  in_INFO_NB_SPR_FREE;
     114#endif
    108115
    109116    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Types.h

    r117 r123  
    6666      else
    6767        {
    68 //        _is_link = 0; // already unset
     68          _is_link = 0;
    6969          _is_use  = 0;
    7070        }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp

    r112 r123  
    3838    log_printf(FUNC,Stat_List_unit,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Stat_List_unit == true
    41     log_printf(INFO,Stat_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     40// #if DEBUG_Stat_List_unit == true
     41//     log_printf(INFO,Stat_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4242
    43     std::cout << *param << std::endl;
    44 #endif   
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Stat_List_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp

    r121 r123  
    125125     }
    126126
     127    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     128#ifdef DEBUG_TEST
     129     {
     130       ALLOC0_INTERFACE_BEGIN("info",IN, NORTH, _("Information"));
     131
     132       ALLOC0_SIGNAL_IN ( in_INFO_ROB_EMPTY  ,"rob_empty"  ,bool    ,1);
     133       ALLOC0_SIGNAL_IN ( in_INFO_NB_GPR_FREE,"nb_gpr_free",uint32_t,_param->_size_general_register+1);
     134       ALLOC0_SIGNAL_IN ( in_INFO_NB_SPR_FREE,"nb_spr_free",uint32_t,_param->_size_special_register+1);
     135
     136       ALLOC0_INTERFACE_END();
     137     }
     138#endif
     139
    127140    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    128141    if (usage_is_set(_usage,USE_SYSTEMC))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp

    r121 r123  
    7171        DELETE1_SIGNAL(out_PUSH_SPR_NUM_REG,_param->_nb_reg_free,_param->_size_special_register);
    7272
     73#ifdef DEBUG_TEST
     74        DELETE0_SIGNAL( in_INFO_ROB_EMPTY  ,1);
     75        DELETE0_SIGNAL( in_INFO_NB_GPR_FREE,_param->_size_general_register+1);
     76        DELETE0_SIGNAL( in_INFO_NB_SPR_FREE,_param->_size_special_register+1);
     77#endif
     78
    7379        DELETE2(gpr_stat_list             ,_param->_nb_bank,_param->_nb_general_register_by_bank);
    7480        DELETE2(spr_stat_list             ,_param->_nb_bank,_param->_nb_special_register_by_bank);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMoore.cpp

    r118 r123  
    2828    log_function(Stat_List_unit,FUNCTION,_name.c_str());
    2929
     30    if (PORT_READ(in_NRESET))
     31      {
    3032    uint32_t  gpr_ptr = reg_GPR_PTR_FREE;
    3133    uint32_t  spr_ptr = reg_SPR_PTR_FREE;
     
    8183          internal_PUSH_GPR_NUM_REG  [i] = gpr_ptr ;
    8284
    83           PORT_WRITE(out_PUSH_GPR_VAL [i], val);
    8485          if (val)
    8586            PORT_WRITE(out_PUSH_GPR_NUM_REG[i], ((bank_gpr<<_param->_shift_gpr) | gpr_ptr));
     
    126127          internal_PUSH_SPR_NUM_REG  [i] = spr_ptr ;
    127128
    128           PORT_WRITE(out_PUSH_SPR_VAL [i], val);
    129129          if (val)
    130130            PORT_WRITE(out_PUSH_SPR_NUM_REG[i], ((bank_spr<<_param->_shift_spr) | spr_ptr));
     
    133133
    134134      }
    135    
     135      }
     136    else
     137      {
     138        for (uint32_t i=0; i<_param->_nb_reg_free; i++)
     139          {
     140            internal_PUSH_GPR_VAL      [i] = 0;
     141//          internal_PUSH_GPR_NUM_BANK [i] = bank_gpr;
     142//          internal_PUSH_GPR_NUM_REG  [i] = gpr_ptr ;
     143            internal_PUSH_SPR_VAL      [i] = 0;
     144//          internal_PUSH_SPR_NUM_BANK [i] = bank_spr;
     145//          internal_PUSH_SPR_NUM_REG  [i] = spr_ptr ;
     146          }
     147      }
     148
     149    for (uint32_t i=0; i<_param->_nb_reg_free; i++)
     150      {
     151        PORT_WRITE(out_PUSH_GPR_VAL [i], internal_PUSH_GPR_VAL      [i]);
     152        PORT_WRITE(out_PUSH_SPR_VAL [i], internal_PUSH_SPR_VAL      [i]);
     153      }
     154 
    136155    log_end(Stat_List_unit,FUNCTION);
    137156  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp

    r118 r123  
    4343    else
    4444      {
     45#ifdef DEBUG_TEST
     46        {
     47          uint32_t free_list_nb_gpr_free     = PORT_READ(in_INFO_NB_GPR_FREE);
     48          uint32_t free_list_nb_spr_free     = PORT_READ(in_INFO_NB_SPR_FREE);
     49          uint32_t stat_list_nb_gpr_free     = 0;
     50          uint32_t stat_list_nb_spr_free     = 0;
     51          uint32_t stat_list_nb_gpr_can_free = 0;
     52          uint32_t stat_list_nb_spr_can_free = 0;
     53          uint32_t stat_list_nb_gpr_link     = 0;
     54          uint32_t stat_list_nb_spr_link     = 0;
     55          uint32_t stat_list_nb_gpr_use      = 0;
     56          uint32_t stat_list_nb_spr_use      = 0;
     57
     58          for (uint32_t i=0; i<_param->_nb_bank; i++)
     59            {
     60              for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
     61                {
     62                  if (gpr_stat_list [i][j]._is_free)
     63                    stat_list_nb_gpr_free ++;
     64                  if (gpr_stat_list [i][j]._is_link)
     65                    stat_list_nb_gpr_link ++;
     66                  if (gpr_stat_list [i][j]._is_use)
     67                    stat_list_nb_gpr_use ++;
     68                  if (gpr_stat_list [i][j].can_free())
     69                    stat_list_nb_gpr_can_free ++;
     70                }
     71              for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
     72                {
     73                  if (spr_stat_list [i][j]._is_free)
     74                    stat_list_nb_spr_free ++;
     75                  if (spr_stat_list [i][j]._is_link)
     76                    stat_list_nb_spr_link ++;
     77                  if (spr_stat_list [i][j]._is_use)
     78                    stat_list_nb_spr_use ++;
     79                  if (spr_stat_list [i][j].can_free())
     80                    stat_list_nb_spr_can_free ++;
     81                }
     82            }
     83
     84          uint32_t  nb_gpr_free = stat_list_nb_gpr_free+stat_list_nb_gpr_can_free;
     85          uint32_t  nb_spr_free = stat_list_nb_spr_free+stat_list_nb_spr_can_free;
     86          uint32_t _nb_gpr_free = (_param->_nb_general_register - _param->_nb_gpr_use_init);
     87          uint32_t _nb_spr_free = (_param->_nb_special_register - _param->_nb_spr_use_init);
     88          uint32_t  nb_gpr_link = stat_list_nb_gpr_link - _param->_nb_gpr_use_init;
     89          uint32_t  nb_spr_link = stat_list_nb_spr_link - _param->_nb_spr_use_init;
     90          uint32_t  nb_gpr_use  = stat_list_nb_gpr_use - _param->_nb_gpr_use_init;
     91          uint32_t  nb_spr_use  = stat_list_nb_spr_use - _param->_nb_spr_use_init;
     92
     93          log_printf(TRACE,Stat_List_unit,FUNCTION,"  * nb_gpr_free : stat_list %d - free_list %d - free %d, link %d (%d), use %d (%d)",stat_list_nb_gpr_free,free_list_nb_gpr_free,nb_gpr_free,nb_gpr_link,stat_list_nb_gpr_link,nb_gpr_use,stat_list_nb_gpr_use);
     94          log_printf(TRACE,Stat_List_unit,FUNCTION,"  * nb_spr_free : stat_list %d - free_list %d - free %d, link %d (%d), use %d (%d)",stat_list_nb_spr_free,free_list_nb_spr_free,nb_spr_free,nb_spr_link,stat_list_nb_spr_link,nb_spr_use,stat_list_nb_spr_use);
     95
     96          if (free_list_nb_gpr_free != stat_list_nb_gpr_free)
     97            throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free));
     98          if (free_list_nb_spr_free != stat_list_nb_spr_free)
     99            throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_spr_free,free_list_nb_spr_free));
     100
     101          if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free))
     102            throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers."),nb_gpr_free,_nb_gpr_free));
     103
     104          if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free))
     105            throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers."),nb_spr_free,_nb_spr_free));
     106        }
     107#endif
     108
    45109        // =====================================================
    46110        // =====[ INSERT ]======================================
     
    256320      for (uint32_t i=0; i<_param->_nb_bank; i++)
    257321        for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
    258           log_printf(TRACE,Stat_List_unit,FUNCTION,"    * GPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d",
     322          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * GPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d, use %.1d",
    259323                     i,
    260324                     j,
    261325                     (i<<_param->_shift_gpr)|j,
    262326                     gpr_stat_list[i][j]._is_free,
    263                      gpr_stat_list[i][j]._is_link// ,
     327                     gpr_stat_list[i][j]._is_link,
     328                     gpr_stat_list[i][j]._is_use// ,
    264329//                      gpr_stat_list[i][j]._is_valid,
    265330//                      gpr_stat_list[i][j]._counter
     
    267332      for (uint32_t i=0; i<_param->_nb_bank; i++)
    268333        for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
    269           log_printf(TRACE,Stat_List_unit,FUNCTION,"    * SPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d",
     334          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * SPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d, use %.1d",
    270335                     i,
    271336                     j,
    272337                     (i<<_param->_shift_spr)|j,
    273338                     spr_stat_list[i][j]._is_free,
    274                      spr_stat_list[i][j]._is_link// ,
     339                     spr_stat_list[i][j]._is_link,
     340                     spr_stat_list[i][j]._is_use// ,
    275341//                      spr_stat_list[i][j]._is_valid,
    276342//                      spr_stat_list[i][j]._counter
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h

    r121 r123  
    137137  public    : SC_IN (Tevent_state_t    )  ***  in_RETIRE_EVENT_STATE       ;//[nb_front_end][nb_context]
    138138
     139    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     140#ifdef DEBUG_TEST
     141  public    : SC_IN (bool      )            *  in_INFO_ROB_EMPTY  ;
     142#endif
     143
    139144    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    140145  public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::dependency_checking_unit::Dependency_checking_unit                   * _component_dependency_checking_unit;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit.cpp

    r88 r123  
    3838    log_printf(FUNC,Register_translation_unit,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Register_translation_unit == true
    41     log_printf(INFO,Register_translation_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     40// #if DEBUG_Register_translation_unit == true
     41//     log_printf(INFO,Register_translation_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4242
    43     std::cout << *param << std::endl;
    44 #endif   
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Register_translation_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp

    r122 r123  
    149149      ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]);
    150150    }
     151
     152    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     153#ifdef DEBUG_TEST
     154     {
     155       ALLOC0_INTERFACE_BEGIN("info",IN, NORTH, _("Information"));
     156
     157       ALLOC0_SIGNAL_IN ( in_INFO_ROB_EMPTY  ,"rob_empty"  ,bool    ,1);
     158
     159       ALLOC0_INTERFACE_END();
     160     }
     161#endif
    151162
    152163    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     
    472483                                   dest,"out_PUSH_SPR_"+toString(i)+"_NUM_REG");
    473484        }
     485
     486    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     487#ifdef DEBUG_TEST
     488      {
     489        dest = _name+"_stat_list_unit";
     490#ifdef POSITION
     491        _component->interface_map (src ,"info"
     492                                   dest,"info");
     493#endif
     494       
     495        COMPONENT_MAP(_component,src ,"out_INFO_NB_GPR_FREE",
     496                                 dest, "in_INFO_NB_GPR_FREE");
     497        COMPONENT_MAP(_component,src ,"out_INFO_NB_SPR_FREE",
     498                                 dest, "in_INFO_NB_SPR_FREE");
     499      }
     500#endif
    474501    }
    475 
    476502
    477503    // ===================================================================
     
    726752          //out_PUSH_SPR_NUM_REG - free_list_unit
    727753        }
     754
     755#ifdef DEBUG_TEST
     756      {
     757        dest = _name;
     758#ifdef POSITION
     759        _component->interface_map (src ,"info"
     760                                   dest,"info");
     761#endif
     762       
     763        PORT_MAP(_component,src , "in_INFO_ROB_EMPTY",
     764                            dest, "in_INFO_ROB_EMPTY");
     765      }
     766#endif
     767
    728768    }
    729769
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_deallocation.cpp

    r121 r123  
    9494        DELETE2_SIGNAL(out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    9595        DELETE2_SIGNAL( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
     96
     97#ifdef DEBUG_TEST
     98        DELETE0_SIGNAL( in_INFO_ROB_EMPTY  ,1);
     99#endif
    96100      }
    97101
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/include/Rename_select.h

    r122 r123  
    7575  public    : SC_IN (Toperation_t      )  ***  in_RENAME_IN_OPERATION     ;//[nb_front_end][nb_inst_decod]
    7676  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_NO_EXECUTE    ;//[nb_front_end][nb_inst_decod]
     77//public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_HAVE_EVENT    ;//[nb_front_end][nb_inst_decod]
     78  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_LAST_EVENT    ;//[nb_front_end][nb_inst_decod]
    7779  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_IS_DELAY_SLOT ;//[nb_front_end][nb_inst_decod]
    7880#ifdef DEBUG
     
    104106  public    : SC_OUT(Toperation_t      )   ** out_RENAME_OUT_OPERATION    ;//[nb_inst_rename]
    105107  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_NO_EXECUTE   ;//[nb_inst_rename]
     108  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_LAST_EVENT   ;//[nb_inst_rename]
    106109  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_IS_DELAY_SLOT;//[nb_inst_rename]
    107110#ifdef DEBUG
     
    125128
    126129    // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    127   public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_FLUSH      ;//[nb_front_end][nb_context]
     130//   public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_FLUSH      ;//[nb_front_end][nb_context]
    128131  public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_STOP       ;//[nb_front_end][nb_context]
    129132
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select.cpp

    r122 r123  
    3838    log_printf(FUNC,Rename_select,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Core == true
    41     log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str());
    42 
    43     std::cout << *param << std::endl;
    44 #endif   
     40// #if DEBUG_Core == true
     41//     log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str());
     42
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Rename_select,FUNCTION,"Allocation");
     
    9696                        << (*(in_RENAME_IN_OPERATION     [i][j]))
    9797                        << (*(in_RENAME_IN_NO_EXECUTE    [i][j]))
     98//                      << (*(in_RENAME_IN_HAVE_EVENT    [i][j]))
     99                        << (*(in_RENAME_IN_LAST_EVENT    [i][j]))
    98100                        << (*(in_RENAME_IN_IS_DELAY_SLOT [i][j]))
    99101#ifdef DEBUG
     
    125127        for (uint32_t i=0; i<_param->_nb_front_end; i++)
    126128          for (uint32_t j=0; j<_param->_nb_context [i]; j++)
    127             sensitive << (*(in_RETIRE_EVENT_FLUSH [i][j]))
     129            sensitive // << (*(in_RETIRE_EVENT_FLUSH [i][j]))
    128130                      << (*(in_RETIRE_EVENT_STOP  [i][j]));
    129131
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_allocation.cpp

    r122 r123  
    6868      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION     ,"operation"    ,Toperation_t      ,_param->_size_operation             , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    6969      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_NO_EXECUTE    ,"no_execute"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     70//    _ALLOC2_SIGNAL_IN ( in_RENAME_IN_HAVE_EVENT    ,"have_event"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     71      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_LAST_EVENT    ,"last_event"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7072      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7173#ifdef DEBUG
     
    103105      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_OPERATION     ,"operation"    ,Toperation_t      ,_param->_size_operation             );
    104106      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_NO_EXECUTE    ,"no_execute"   ,Tcontrol_t        ,1                                   );
     107      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_LAST_EVENT    ,"last_event"   ,Tcontrol_t        ,1                                   );
    105108      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t        ,1                                   );
    106109#ifdef DEBUG
     
    130133      ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]);
    131134
    132       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH         ,"flush"                ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
     135//       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH         ,"flush"                ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
    133136      _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STOP          ,"stop"                 ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
    134137
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_deallocation.cpp

    r122 r123  
    3737        DELETE2_SIGNAL( in_RENAME_IN_OPERATION     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation             );
    3838        DELETE2_SIGNAL( in_RENAME_IN_NO_EXECUTE    ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     39//      DELETE2_SIGNAL( in_RENAME_IN_HAVE_EVENT    ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     40        DELETE2_SIGNAL( in_RENAME_IN_LAST_EVENT    ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    3941        DELETE2_SIGNAL( in_RENAME_IN_IS_DELAY_SLOT ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    4042#ifdef DEBUG
     
    6567        DELETE1_SIGNAL(out_RENAME_OUT_OPERATION     ,_param->_nb_inst_rename,_param->_size_operation             );
    6668        DELETE1_SIGNAL(out_RENAME_OUT_NO_EXECUTE    ,_param->_nb_inst_rename,1                                   );
     69        DELETE1_SIGNAL(out_RENAME_OUT_LAST_EVENT    ,_param->_nb_inst_rename,1                                   );
    6770        DELETE1_SIGNAL(out_RENAME_OUT_IS_DELAY_SLOT ,_param->_nb_inst_rename,1                                   );
    6871#ifdef DEBUG
     
    8588        DELETE1_SIGNAL(out_RENAME_OUT_EXCEPTION     ,_param->_nb_inst_rename,_param->_size_exception             );
    8689
    87         DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH       ,_param->_nb_front_end, _param->_nb_context[it1],1);
     90//         DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH       ,_param->_nb_front_end, _param->_nb_context[it1],1);
    8891        DELETE2_SIGNAL( in_RETIRE_EVENT_STOP        ,_param->_nb_front_end, _param->_nb_context[it1],1);
    8992      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp

    r122 r123  
    1717namespace rename_select {
    1818
    19 // #define CONTINUE_ON_EVENT_STOP
    20 
    2119#undef  FUNCTION
    2220#define FUNCTION "Rename_select::genMealy"
     
    2826    Tcontrol_t val                  [_param->_nb_inst_rename];
    2927    Tcontrol_t ack                  [_param->_nb_front_end][_param->_max_nb_inst_decod];
    30     Tcontrol_t previous_transaction [_param->_nb_front_end];
    3128
    3229    for (uint32_t i=0; i<_param->_nb_inst_rename; ++i)
    3330      val [i] = false;
    3431    for (uint32_t i=0; i<_param->_nb_front_end; i++)
     32      for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++)
     33        ack [i][j] = false;
     34   
     35    if (PORT_READ(in_NRESET))
    3536      {
    36         previous_transaction [i] = true;
    37         for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++)
    38           ack [i][j] = false;
    39       }
     37        Tcontrol_t previous_transaction [_param->_nb_front_end];
     38        for (uint32_t i=0; i<_param->_nb_front_end; i++)
     39          previous_transaction [i] = true;
    4040
    4141    std::list<generic::priority::select_t> * select = _priority->select();
     
    7171               
    7272                // Test if ROB is Flushed
    73 #ifndef CONTINUE_ON_EVENT_STOP
    7473                if (not stop)
    75 #endif
    7674                  {
    7775                    // Find !!!
     
    7977                    ack [x][y] = PORT_READ(in_RENAME_OUT_ACK [i]);
    8078                   
    81                     Tcontrol_t     have_event          = (PORT_READ(in_RETIRE_EVENT_FLUSH [x][context_id])
    82 #ifdef CONTINUE_ON_EVENT_STOP
    83                                                           or stop
    84 #endif
    85                                                           );
    86                     Tcontrol_t     can_register_access = not have_event;
    87                     Tcontrol_t     no_execute          = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event);
    88                     Tcontrol_t     read_ra             = (PORT_READ(in_RENAME_IN_READ_RA    [x][y]) and can_register_access);
    89                     Tcontrol_t     read_rb             = (PORT_READ(in_RENAME_IN_READ_RB    [x][y]) and can_register_access);
    90                     Tcontrol_t     read_rc             = (PORT_READ(in_RENAME_IN_READ_RC    [x][y]) and can_register_access);
    91                     Tcontrol_t     write_rd            = (PORT_READ(in_RENAME_IN_WRITE_RD   [x][y]) and can_register_access);
    92                     Tcontrol_t     write_re            = (PORT_READ(in_RENAME_IN_WRITE_RE   [x][y]) and can_register_access);
    93 //                  Tcontrol_t     read_ra             = (PORT_READ(in_RENAME_IN_READ_RA    [x][y]));
    94 //                  Tcontrol_t     read_rb             = (PORT_READ(in_RENAME_IN_READ_RB    [x][y]));
    95 //                  Tcontrol_t     read_rc             = (PORT_READ(in_RENAME_IN_READ_RC    [x][y]));
    96 //                  Tcontrol_t     write_rd            = (PORT_READ(in_RENAME_IN_WRITE_RD   [x][y]));
    97 //                  Tcontrol_t     write_re            = (PORT_READ(in_RENAME_IN_WRITE_RE   [x][y]));
     79//                  Tcontrol_t     have_event          = (PORT_READ(in_RETIRE_EVENT_FLUSH [x][context_id]) // or
     80//                                                           );
     81//                  log_printf(TRACE,Rename_select,FUNCTION,"      * have_event           : %d",have_event);
     82
     83//                  Tcontrol_t     can_register_access = not have_event;
     84//                  Tcontrol_t     no_execute          = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event);
     85//                  Tcontrol_t     read_ra             = (PORT_READ(in_RENAME_IN_READ_RA    [x][y]) and can_register_access);
     86//                  Tcontrol_t     read_rb             = (PORT_READ(in_RENAME_IN_READ_RB    [x][y]) and can_register_access);
     87//                  Tcontrol_t     read_rc             = (PORT_READ(in_RENAME_IN_READ_RC    [x][y]) and can_register_access);
     88//                  Tcontrol_t     write_rd            = (PORT_READ(in_RENAME_IN_WRITE_RD   [x][y]) and can_register_access);
     89//                  Tcontrol_t     write_re            = (PORT_READ(in_RENAME_IN_WRITE_RE   [x][y]) and can_register_access);
     90                    Tcontrol_t     no_execute          = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]));
     91                    Tcontrol_t     read_ra             = (PORT_READ(in_RENAME_IN_READ_RA    [x][y]));
     92                    Tcontrol_t     read_rb             = (PORT_READ(in_RENAME_IN_READ_RB    [x][y]));
     93                    Tcontrol_t     read_rc             = (PORT_READ(in_RENAME_IN_READ_RC    [x][y]));
     94                    Tcontrol_t     write_rd            = (PORT_READ(in_RENAME_IN_WRITE_RD   [x][y]));
     95                    Tcontrol_t     write_re            = (PORT_READ(in_RENAME_IN_WRITE_RE   [x][y]));
    9896                   
    99                     log_printf(TRACE,Rename_select,FUNCTION,"      * have_event           : %d",have_event);
    100                     log_printf(TRACE,Rename_select,FUNCTION,"      * no_execute (before)  : %d",PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]));
    101                     log_printf(TRACE,Rename_select,FUNCTION,"      * no_execute (after)   : %d",no_execute);
     97                    log_printf(TRACE,Rename_select,FUNCTION,"      * no_execute           : %d",no_execute);
    10298                   
    10399                    if (_param->_have_port_front_end_id)
     
    110106                    PORT_WRITE(out_RENAME_OUT_OPERATION    [i],PORT_READ(in_RENAME_IN_OPERATION     [x][y]));
    111107                    PORT_WRITE(out_RENAME_OUT_NO_EXECUTE   [i],no_execute);
     108                    PORT_WRITE(out_RENAME_OUT_LAST_EVENT   [i],PORT_READ(in_RENAME_IN_LAST_EVENT    [x][y]));
    112109                    PORT_WRITE(out_RENAME_OUT_IS_DELAY_SLOT[i],PORT_READ(in_RENAME_IN_IS_DELAY_SLOT [x][y]));
    113110#ifdef DEBUG       
     
    140137      }
    141138
     139      }
     140//     else
     141//       {
     142//       }
     143
    142144    for (uint32_t i=0; i<_param->_nb_inst_rename; ++i)
    143145      PORT_WRITE(out_RENAME_OUT_VAL [i], val [i]);
     
    146148      for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++)
    147149        PORT_WRITE(out_RENAME_IN_ACK [i][j], ack [i][j]);
     150
    148151
    149152    log_end(Rename_select,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue.cpp

    r122 r123  
    4040    usage_environment(_usage);
    4141
    42 #if DEBUG_Rename_unit_Glue == true
    43     log_printf(INFO,Rename_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
    44 
    45     std::cout << *param << std::endl;
    46 #endif   
     42// #if DEBUG_Rename_unit_Glue == true
     43//     log_printf(INFO,Rename_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     44
     45//     std::cout << *param << std::endl;
     46// #endif   
    4747
    4848    log_printf(INFO,Rename_unit_Glue,FUNCTION,_("<%s> : Allocation"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_insert.cpp

    r88 r123  
    2525    log_function(Rename_unit_Glue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    2830      {
     
    104106        PORT_WRITE(out_INSERT_LOAD_STORE_QUEUE_POINTER_OPERATION    [i],OPERATION         );
    105107      }
     108      }
    106109
    107110    log_end(Rename_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_insert_valack.cpp

    r115 r123  
    2525    log_function(Rename_unit_Glue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729//     // Transaction must be in-order - made in rename_select
    2830//     Tcontrol_t previous_transaction = true;
     
    7577//      previous_transaction = RENAME_SELECT_VAL and RENAME_SELECT_ACK;
    7678      }
     79      }
     80    else
     81      {
     82        for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
     83          {
     84//      PORT_WRITE(out_INSERT_VAL                          [i], 0);
     85        PORT_WRITE(out_INSERT_RENAME_SELECT_ACK            [i], 0);
     86        PORT_WRITE(out_INSERT_REGISTER_TRANSLATION_VAL     [i], 0);
     87        PORT_WRITE(out_INSERT_LOAD_STORE_QUEUE_POINTER_VAL [i], 0);
     88          }
     89      }
    7790
    7891    log_end(Rename_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_retire_event_valack.cpp

    r122 r123  
    2525    log_function(Rename_unit_Glue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    for (uint32_t i=0; i<_param->_nb_front_end; i++)
    2830      for (uint32_t j=0; j<_param->_nb_context[i]; j++)
     
    5961          log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * load_store_queue_pointer_ack (r) : %d",LOAD_STORE_QUEUE_POINTER_ACK);
    6062        }
    61    
     63      }
     64    else
     65      {
     66        for (uint32_t i=0; i<_param->_nb_front_end; i++)
     67          for (uint32_t j=0; j<_param->_nb_context[i]; j++)
     68            {
     69              PORT_WRITE(out_RETIRE_EVENT_ACK                          [i][j], 0);
     70              PORT_WRITE(out_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_VAL [i][j], 0);
     71              PORT_WRITE(out_RETIRE_EVENT_REGISTER_TRANSLATION_VAL     [i][j], 0);
     72            }
     73      }
     74
    6275    log_end(Rename_unit_Glue,FUNCTION);
    6376  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_retire_valack.cpp

    r110 r123  
    2525    log_function(Rename_unit_Glue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    // Transaction must be in-order - made in commit_unit
    2830//     Tcontrol_t previous_transaction = true;
     
    5860        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * load_store_queue_pointer_ack (r) : %d",LOAD_STORE_QUEUE_POINTER_ACK);
    5961      }
    60 
     62      }
     63    else
     64      {
     65        for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     66          {
     67        PORT_WRITE(out_RETIRE_ACK                          [i], 0);
     68        PORT_WRITE(out_RETIRE_LOAD_STORE_QUEUE_POINTER_VAL [i], 0);
     69        PORT_WRITE(out_RETIRE_REGISTER_TRANSLATION_VAL     [i], 0);
     70          }
     71      }
    6172    log_end(Rename_unit_Glue,FUNCTION);
    6273  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/include/Rename_unit.h

    r122 r123  
    7777  public    : SC_IN (Toperation_t      )  ***  in_RENAME_IN_OPERATION         ;//[nb_front_end][nb_inst_decod]
    7878  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_NO_EXECUTE        ;//[nb_front_end][nb_inst_decod]
     79//public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_HAVE_EVENT        ;//[nb_front_end][nb_inst_decod]
     80  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_LAST_EVENT        ;//[nb_front_end][nb_inst_decod]
    7981  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_IS_DELAY_SLOT     ;//[nb_front_end][nb_inst_decod]
    8082#ifdef DEBUG
     
    106108  public    : SC_OUT(Toperation_t      )   ** out_INSERT_OPERATION            ;//[nb_inst_insert]
    107109  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_NO_EXECUTE           ;//[nb_inst_insert]
     110  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_LAST_EVENT           ;//[nb_inst_insert]
    108111  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_IS_DELAY_SLOT        ;//[nb_inst_insert]
    109112#ifdef DEBUG
     
    173176  public    : SC_OUT(Tcontrol_t        )  *** out_RETIRE_EVENT_ACK            ;//[nb_front_end][nb_context]
    174177  public    : SC_IN (Tevent_state_t    )  ***  in_RETIRE_EVENT_STATE          ;//[nb_front_end][nb_context]
    175   public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_FLUSH          ;//[nb_front_end][nb_context]
     178//public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_FLUSH          ;//[nb_front_end][nb_context]
    176179  public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_STOP           ;//[nb_front_end][nb_context]
    177180
    178181    // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    179182  public    : SC_IN (Tspr_t            )  ***  in_SPR_READ_SR                 ;//[nb_front_end][nb_context]
     183
     184    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     185#ifdef DEBUG_TEST
     186  public    : SC_IN (bool      )            *  in_INFO_ROB_EMPTY  ;
     187#endif
    180188
    181189    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit.cpp

    r88 r123  
    3939    usage_environment(_usage);
    4040
    41 #if DEBUG_Rename_unit == true
    42     log_printf(INFO,Rename_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Rename_unit == true
     42//     log_printf(INFO,Rename_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4343
    44     std::cout << *param << std::endl;
    45 #endif   
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Rename_unit,FUNCTION,_("<%s> : Allocation"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_allocation.cpp

    r122 r123  
    6868      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION     ,"operation"    ,Toperation_t      ,_param->_size_operation             , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    6969      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_NO_EXECUTE    ,"no_execute"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     70//    _ALLOC2_SIGNAL_IN ( in_RENAME_IN_HAVE_EVENT    ,"have_event"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     71      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_LAST_EVENT    ,"last_event"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7072      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7173#ifdef DEBUG
     
    103105      ALLOC1_SIGNAL_OUT(out_INSERT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation             );
    104106      ALLOC1_SIGNAL_OUT(out_INSERT_NO_EXECUTE           ,"no_execute"           ,Tcontrol_t        ,1                                   );
     107      ALLOC1_SIGNAL_OUT(out_INSERT_LAST_EVENT           ,"last_event"           ,Tcontrol_t        ,1                                   );
    105108      ALLOC1_SIGNAL_OUT(out_INSERT_IS_DELAY_SLOT        ,"is_delay_slot"        ,Tcontrol_t        ,1                                   );
    106109#ifdef DEBUG
     
    182185      _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK           ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
    183186      _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE         ,"state"                ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
    184       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH         ,"flush"                ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
     187//       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH         ,"flush"                ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
    185188      _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STOP          ,"stop"                 ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
    186189
     
    196199      ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]);
    197200    }
     201
     202    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     203#ifdef DEBUG_TEST
     204     {
     205       ALLOC0_INTERFACE_BEGIN("info",IN, NORTH, _("Information"));
     206
     207       ALLOC0_SIGNAL_IN ( in_INFO_ROB_EMPTY  ,"rob_empty"  ,bool    ,1);
     208
     209       ALLOC0_INTERFACE_END();
     210     }
     211#endif
    198212
    199213    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    325339            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_NO_EXECUTE"   ,
    326340                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_NO_EXECUTE"   );
     341//          PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT"   ,
     342//                              dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT"   );
     343            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_LAST_EVENT"   ,
     344                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_LAST_EVENT"   );
    327345            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT",
    328346                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT");
     
    387405          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_EXCEPTION_USE",
    388406                              dest,"out_INSERT_"    +toString(i)+"_EXCEPTION_USE");
     407          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_LAST_EVENT",
     408                              dest,"out_INSERT_"    +toString(i)+"_LAST_EVENT");
    389409
    390410          dest = _name+"_register_translation_unit";
     
    456476                                       dest,"retire_event_"+toString(i)+"_"+toString(j));
    457477#endif     
    458             PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_FLUSH",
    459                                 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_FLUSH");
     478//          PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_FLUSH",
     479//                                 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_FLUSH");
    460480            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STOP",
    461481                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STOP");
     
    663683                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE");
    664684          }
     685
     686
     687#ifdef DEBUG_TEST
     688      {
     689        dest = _name;
     690#ifdef POSITION
     691        _component->interface_map (src ,"info"
     692                                   dest,"info");
     693#endif
     694       
     695        PORT_MAP(_component,src , "in_INFO_ROB_EMPTY",
     696                            dest, "in_INFO_ROB_EMPTY");
     697      }
     698#endif
    665699    }
    666700
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_deallocation.cpp

    r122 r123  
    3636        DELETE2_SIGNAL( in_RENAME_IN_OPERATION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation             );
    3737        DELETE2_SIGNAL( in_RENAME_IN_NO_EXECUTE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     38//      DELETE2_SIGNAL( in_RENAME_IN_HAVE_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     39        DELETE2_SIGNAL( in_RENAME_IN_LAST_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    3840        DELETE2_SIGNAL( in_RENAME_IN_IS_DELAY_SLOT     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    3941#ifdef DEBUG
     
    6466        DELETE1_SIGNAL(out_INSERT_OPERATION            ,_param->_nb_inst_insert,_param->_size_operation             );
    6567        DELETE1_SIGNAL(out_INSERT_NO_EXECUTE           ,_param->_nb_inst_insert,1                                   );
     68        DELETE1_SIGNAL(out_INSERT_LAST_EVENT           ,_param->_nb_inst_insert,1                                   );
    6669        DELETE1_SIGNAL(out_INSERT_IS_DELAY_SLOT        ,_param->_nb_inst_insert,1                                   );
    6770#ifdef DEBUG
     
    129132        DELETE2_SIGNAL(out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    130133        DELETE2_SIGNAL( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
    131         DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH          ,_param->_nb_front_end, _param->_nb_context[it1],1);
     134//         DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH          ,_param->_nb_front_end, _param->_nb_context[it1],1);
    132135        DELETE2_SIGNAL( in_RETIRE_EVENT_STOP           ,_param->_nb_front_end, _param->_nb_context[it1],1);
    133136       
    134137        DELETE2_SIGNAL(in_SPR_READ_SR                  ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_spr);
     138
     139#ifdef DEBUG_TEST
     140        DELETE0_SIGNAL( in_INFO_ROB_EMPTY  ,1);
     141#endif
    135142      }
    136143    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
Note: See TracChangeset for help on using the changeset viewer.