Changeset 139 for trunk/IPs


Ignore:
Timestamp:
Jul 30, 2010, 4:47:27 PM (14 years ago)
Author:
rosiere
Message:
  • Add test for all configuration
  • RAT : add rat scheme (depth_save)
Location:
trunk/IPs/systemC/processor/Morpheo
Files:
4 added
1 deleted
265 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/include/Parameters.h

    r138 r139  
    5353  public : uint32_t              * _nb_general_register                           ;//[nb_rename_bloc]
    5454  public : uint32_t              * _nb_special_register                           ;//[nb_rename_bloc]
     55  public : Trat_scheme_t         * _rat_scheme                                    ;//[nb_rename_bloc]
    5556  public : uint32_t              * _nb_reg_free                                   ;//[nb_rename_bloc]
    5657  public : uint32_t              * _nb_rename_unit_bank                           ;//[nb_rename_bloc]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance.cpp

    r138 r139  
    161161        DELETE1(_param->_nb_rename_unit_bank                    ,_param->_nb_rename_bloc);
    162162        DELETE1(_param->_nb_reg_free                            ,_param->_nb_rename_bloc);
     163        DELETE1(_param->_rat_scheme                             ,_param->_nb_rename_bloc);
    163164        DELETE1(_param->_nb_special_register                    ,_param->_nb_rename_bloc);
    164165        DELETE1(_param->_nb_general_register                    ,_param->_nb_rename_bloc);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_fromInternalStructure.cpp

    r138 r139  
    115115    ALLOC1(_param->_nb_general_register              ,uint32_t         ,_param->_nb_rename_bloc);
    116116    ALLOC1(_param->_nb_special_register              ,uint32_t         ,_param->_nb_rename_bloc);
     117    ALLOC1(_param->_rat_scheme                       ,Trat_scheme_t    ,_param->_nb_rename_bloc);
    117118    ALLOC1(_param->_nb_reg_free                      ,uint32_t         ,_param->_nb_rename_bloc);
    118119    ALLOC1(_param->_nb_rename_unit_bank              ,uint32_t         ,_param->_nb_rename_bloc);
     
    130131        _param->_nb_general_register               [i] = fromString<uint32_t         > (getParam("nb_general_register"              , "rename_bloc",toString(i).c_str(),""));
    131132        _param->_nb_special_register               [i] = fromString<uint32_t         > (getParam("nb_special_register"              , "rename_bloc",toString(i).c_str(),""));
     133        _param->_rat_scheme                        [i] = fromString<Trat_scheme_t    > (getParam("rat_scheme"                       , "rename_bloc",toString(i).c_str(),""));
    132134        _param->_nb_reg_free                       [i] = fromString<uint32_t         > (getParam("nb_reg_free"                      , "rename_bloc",toString(i).c_str(),""));
    133135        _param->_nb_rename_unit_bank               [i] = fromString<uint32_t         > (getParam("nb_rename_unit_bank"              , "rename_bloc",toString(i).c_str(),""));
    134 //         _param->_size_read_counter                 [i] = fromString<uint32_t         > (getParam("size_read_counter"                , "rename_bloc",toString(i).c_str(),""));
    135       }   
     136//      _param->_size_read_counter                 [i] = fromString<uint32_t         > (getParam("size_read_counter"                , "rename_bloc",toString(i).c_str(),""));
     137      }
    136138
    137139    //-----------------------------------------------------
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h

    r137 r139  
    9191  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_NO_EXECUTE                   ;//[nb_inst_decod]
    9292  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_IS_DELAY_SLOT                ;//[nb_inst_decod]
     93  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_SAVE_RAT                     ;//[nb_inst_decod]
    9394#ifdef DEBUG
    9495  public    : SC_OUT(Tgeneral_data_t    )  ** out_DECOD_ADDRESS                      ;//[nb_inst_decod]
     
    145146  private   : Tgeneral_data_t               * reg_CONTEXT_ADDRESS_PREVIOUS     ; //[nb_context]
    146147  private   : Tcontrol_t                    * reg_CONTEXT_IS_DELAY_SLOT        ; //[nb_context]
     148//private   : Tcontrol_t                    * reg_CONTEXT_SAVE_RAT             ; //[nb_context]
    147149  private   : Tcontrol_t                    * internal_CONTEXT_HAVE_TRANSACTION; //[nb_context]
    148150  private   : Tgeneral_data_t               * internal_CONTEXT_ADDRESS_PREVIOUS; //[nb_context]
    149151  private   : Tcontrol_t                    * internal_CONTEXT_IS_DELAY_SLOT   ; //[nb_context]
     152//private   : Tcontrol_t                    * internal_CONTEXT_SAVE_RAT        ; //[nb_context]
    150153
    151154  private   : Tcontrol_t                    * internal_DECOD_VAL               ; //[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp

    r137 r139  
    9090      ALLOC1_SIGNAL_OUT(out_DECOD_NO_EXECUTE   ,"no_execute"   ,Tcontrol_t        ,1                                   );
    9191      ALLOC1_SIGNAL_OUT(out_DECOD_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t        ,1                                   );
     92      ALLOC1_SIGNAL_OUT(out_DECOD_SAVE_RAT     ,"save_rat"     ,Tcontrol_t        ,1                                   );
    9293#ifdef DEBUG
    9394      ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS      ,"address"      ,Tgeneral_data_t   ,_param->_size_instruction_address   );
     
    165166    ALLOC1(reg_CONTEXT_ADDRESS_PREVIOUS      ,Tgeneral_data_t,_param->_nb_context);
    166167    ALLOC1(reg_CONTEXT_IS_DELAY_SLOT         ,Tcontrol_t     ,_param->_nb_context);
     168//  ALLOC1(reg_CONTEXT_SAVE_RAT              ,Tcontrol_t     ,_param->_nb_context);
    167169
    168170    ALLOC1(internal_CONTEXT_HAVE_TRANSACTION ,Tcontrol_t     ,_param->_nb_context);
    169171    ALLOC1(internal_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context);
    170172    ALLOC1(internal_CONTEXT_IS_DELAY_SLOT    ,Tcontrol_t     ,_param->_nb_context);
     173//  ALLOC1(internal_CONTEXT_SAVE_RAT         ,Tcontrol_t     ,_param->_nb_context);
    171174
    172175#ifdef STATISTICS
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp

    r137 r139  
    5151        DELETE1_SIGNAL(out_DECOD_NO_EXECUTE   ,_param->_nb_inst_decod,1                                   );
    5252        DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT,_param->_nb_inst_decod,1                                   );
     53        DELETE1_SIGNAL(out_DECOD_SAVE_RAT     ,_param->_nb_inst_decod,1                                   );
    5354#ifdef DEBUG
    5455        DELETE1_SIGNAL(out_DECOD_ADDRESS      ,_param->_nb_inst_decod,_param->_size_instruction_address   );
     
    99100        DELETE1(reg_CONTEXT_ADDRESS_PREVIOUS      ,_param->_nb_context);
    100101        DELETE1(reg_CONTEXT_IS_DELAY_SLOT         ,_param->_nb_context);
     102//      DELETE1(reg_CONTEXT_SAVE_RAT              ,_param->_nb_context);
     103
    101104        DELETE1(internal_CONTEXT_HAVE_TRANSACTION ,_param->_nb_context);
    102105        DELETE1(internal_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context);
    103106        DELETE1(internal_CONTEXT_IS_DELAY_SLOT    ,_param->_nb_context);
     107//      DELETE1(internal_CONTEXT_SAVE_RAT         ,_param->_nb_context);
    104108
    105109#ifdef STATISTICS
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp

    r137 r139  
    5959        internal_CONTEXT_ADDRESS_PREVIOUS [i] = reg_CONTEXT_ADDRESS_PREVIOUS [i];
    6060        internal_CONTEXT_IS_DELAY_SLOT    [i] = reg_CONTEXT_IS_DELAY_SLOT    [i];
     61//      internal_CONTEXT_SAVE_RAT         [i] = reg_CONTEXT_SAVE_RAT         [i];
    6162       
    6263        can_continue                      [i] = PORT_READ(in_CONTEXT_DECOD_ENABLE [i]);
     
    169170                // Depth current. If have decod a branch and i can continue : depth = depth_next
    170171                Tdepth_t     depth     = (_param->_have_port_depth)?PORT_READ(in_CONTEXT_DEPTH [x]):0;
     172                // Tcontrol_t   save_rat  = internal_CONTEXT_SAVE_RAT [x];
     173                Tcontrol_t   no_execute = _decod_instruction->_no_execute;
    171174
    172175                if ((_param->_nb_branch_speculated[x] > 0) and have_decod_branch [x])
     
    182185                PORT_WRITE(out_DECOD_TYPE          [i], type);
    183186                PORT_WRITE(out_DECOD_OPERATION     [i], _decod_instruction->_operation     );
    184                 PORT_WRITE(out_DECOD_NO_EXECUTE    [i], _decod_instruction->_no_execute    );
     187                PORT_WRITE(out_DECOD_NO_EXECUTE    [i], no_execute);
    185188                PORT_WRITE(out_DECOD_IS_DELAY_SLOT [i], _decod_instruction->_is_delay_slot );
     189                // PORT_WRITE(out_DECOD_SAVE_RAT      [i], save_rat);
     190                PORT_WRITE(out_DECOD_SAVE_RAT      [i], ((type == TYPE_BRANCH) and not no_execute));
    186191#ifdef DEBUG
    187192                PORT_WRITE(out_DECOD_ADDRESS       [i], addr);
     
    288293                    internal_CONTEXT_ADDRESS_PREVIOUS [x] = addr;
    289294                    internal_CONTEXT_IS_DELAY_SLOT    [x] = (type == TYPE_BRANCH); // next is a delay slot if current have branch type
     295                    // internal_CONTEXT_SAVE_RAT         [x] = ((type == TYPE_BRANCH) and not no_execute);
    290296                  }
    291297
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_transition.cpp

    r88 r139  
    3232            reg_CONTEXT_ADDRESS_PREVIOUS [i] = 0xfc; // 0x100-4. (0x100 : reset address)
    3333            reg_CONTEXT_IS_DELAY_SLOT    [i] = 0;
     34            // reg_CONTEXT_SAVE_RAT         [i] = 0;
    3435          }
    3536      }
     
    4445              reg_CONTEXT_ADDRESS_PREVIOUS [i] = internal_CONTEXT_ADDRESS_PREVIOUS [i];
    4546              reg_CONTEXT_IS_DELAY_SLOT    [i] = internal_CONTEXT_IS_DELAY_SLOT    [i];
     47              // reg_CONTEXT_SAVE_RAT         [i] = internal_CONTEXT_SAVE_RAT         [i];
    4648            }
    4749
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h

    r137 r139  
    8282  public    : SC_IN (Tcontrol_t         )  **  in_DECOD_IN_NO_EXECUTE     ;//[nb_inst_decod]
    8383  public    : SC_IN (Tcontrol_t         )  **  in_DECOD_IN_IS_DELAY_SLOT  ;//[nb_inst_decod]
     84  public    : SC_IN (Tcontrol_t         )  **  in_DECOD_IN_SAVE_RAT       ;//[nb_inst_decod]
    8485#ifdef DEBUG
    8586  public    : SC_IN (Tgeneral_data_t    )  **  in_DECOD_IN_ADDRESS        ;//[nb_inst_decod]
     
    115116  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_OUT_LAST_EVENT    ;//[nb_inst_decod]
    116117  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_OUT_IS_DELAY_SLOT ;//[nb_inst_decod]
     118  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_OUT_SAVE_RAT      ;//[nb_inst_decod]
    117119#ifdef DEBUG
    118120  public    : SC_OUT(Tgeneral_data_t    )  ** out_DECOD_OUT_ADDRESS       ;//[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h

    r137 r139  
    4040  public : Tcontrol_t         * _no_execute     ;
    4141  public : Tcontrol_t         * _is_delay_slot  ;
     42  public : Tcontrol_t         * _save_rat       ;
    4243#ifdef DEBUG
    4344  public : Tgeneral_data_t    * _address        ;
     
    7273      ALLOC1(_no_execute     ,Tcontrol_t         ,_nb_inst);
    7374      ALLOC1(_is_delay_slot  ,Tcontrol_t         ,_nb_inst);
     75      ALLOC1(_save_rat       ,Tcontrol_t         ,_nb_inst);
    7476#ifdef DEBUG
    7577      ALLOC1(_address        ,Tgeneral_data_t    ,_nb_inst);
     
    107109      DELETE1(_no_execute     ,_nb_inst);
    108110      DELETE1(_is_delay_slot  ,_nb_inst);
     111      DELETE1(_save_rat       ,_nb_inst);
    109112#ifdef DEBUG
    110113      DELETE1(_address        ,_nb_inst);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp

    r137 r139  
    7070      ALLOC1_SIGNAL_IN ( in_DECOD_IN_NO_EXECUTE     ,"no_execute"   ,Tcontrol_t         ,1                                   );
    7171      ALLOC1_SIGNAL_IN ( in_DECOD_IN_IS_DELAY_SLOT  ,"is_delay_slot",Tcontrol_t         ,1                                   );
     72      ALLOC1_SIGNAL_IN ( in_DECOD_IN_SAVE_RAT       ,"save_rat"     ,Tcontrol_t         ,1                                   );
    7273#ifdef DEBUG
    7374      ALLOC1_SIGNAL_IN ( in_DECOD_IN_ADDRESS        ,"address"      ,Tgeneral_data_t    ,_param->_size_instruction_address   );
     
    109110      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_LAST_EVENT     ,"last_event"   ,Tcontrol_t         ,1                                   );
    110111      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_IS_DELAY_SLOT  ,"is_delay_slot",Tcontrol_t         ,1                                   );
     112      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_SAVE_RAT       ,"save_rat"     ,Tcontrol_t         ,1                                   );
    111113#ifdef DEBUG
    112114      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_ADDRESS        ,"address"      ,Tgeneral_data_t    ,_param->_size_instruction_address   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp

    r137 r139  
    4040        DELETE1_SIGNAL( in_DECOD_IN_NO_EXECUTE     ,_param->_nb_inst_decod,1                                   );
    4141        DELETE1_SIGNAL( in_DECOD_IN_IS_DELAY_SLOT  ,_param->_nb_inst_decod,1                                   );
     42        DELETE1_SIGNAL( in_DECOD_IN_SAVE_RAT       ,_param->_nb_inst_decod,1                                   );
    4243#ifdef DEBUG
    4344        DELETE1_SIGNAL( in_DECOD_IN_ADDRESS        ,_param->_nb_inst_decod,_param->_size_instruction_address   );
     
    7273        DELETE1_SIGNAL(out_DECOD_OUT_LAST_EVENT    ,_param->_nb_inst_decod,1                                   );
    7374        DELETE1_SIGNAL(out_DECOD_OUT_IS_DELAY_SLOT ,_param->_nb_inst_decod,1                                   );
     75        DELETE1_SIGNAL(out_DECOD_OUT_SAVE_RAT      ,_param->_nb_inst_decod,1                                   );
    7476#ifdef DEBUG
    7577        DELETE1_SIGNAL(out_DECOD_OUT_ADDRESS       ,_param->_nb_inst_decod,_param->_size_instruction_address   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp

    r137 r139  
    6464                PORT_WRITE(out_DECOD_OUT_LAST_EVENT    [i],0);
    6565                PORT_WRITE(out_DECOD_OUT_IS_DELAY_SLOT [i],reg_QUEUE[num_bank].front()->_is_delay_slot [0]);
     66                PORT_WRITE(out_DECOD_OUT_SAVE_RAT      [i],reg_QUEUE[num_bank].front()->_save_rat      [0]);
    6667#ifdef DEBUG
    6768                PORT_WRITE(out_DECOD_OUT_ADDRESS       [i],reg_QUEUE[num_bank].front()->_address       [0]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp

    r137 r139  
    8181                entry->_no_execute    [0] = PORT_READ(in_DECOD_IN_NO_EXECUTE    [i]);
    8282                entry->_is_delay_slot [0] = PORT_READ(in_DECOD_IN_IS_DELAY_SLOT [i]);
     83                entry->_save_rat      [0] = PORT_READ(in_DECOD_IN_SAVE_RAT      [i]);
    8384#ifdef DEBUG
    8485                entry->_address       [0] = PORT_READ(in_DECOD_IN_ADDRESS       [i]);
     
    186187             it++)
    187188          {
    188             log_printf(TRACE,Decod_queue,FUNCTION,"    * [%.4d][%.4d] %.3d %.2d, %.2d %.3d %.1d %.1d, 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d"
     189            log_printf(TRACE,Decod_queue,FUNCTION,"    * [%.4d][%.4d] %.3d %.2d, %.2d %.3d %.1d %.1d %.1d, 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d"
    189190                       ,i
    190191                       ,x
     
    195196                       ,(*it)->_no_execute    [0]
    196197                       ,(*it)->_is_delay_slot [0]
     198                       ,(*it)->_save_rat      [0]
    197199                       ,(*it)->_address       [0]
    198200                       ,(*it)->_address       [0]<<2
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp

    r137 r139  
    6464          PORT_WRITE(out_DECOD_OUT_LAST_EVENT    [i],0);
    6565          PORT_WRITE(out_DECOD_OUT_IS_DELAY_SLOT [i],reg_QUEUE->front()->_is_delay_slot [index]);
     66          PORT_WRITE(out_DECOD_OUT_SAVE_RAT      [i],reg_QUEUE->front()->_save_rat      [index]);
    6667#ifdef DEBUG
    6768          PORT_WRITE(out_DECOD_OUT_ADDRESS       [i],reg_QUEUE->front()->_address       [index]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp

    r137 r139  
    8484                entry->_no_execute    [i] = PORT_READ(in_DECOD_IN_NO_EXECUTE    [i]);
    8585                entry->_is_delay_slot [i] = PORT_READ(in_DECOD_IN_IS_DELAY_SLOT [i]);
     86                entry->_save_rat      [i] = PORT_READ(in_DECOD_IN_SAVE_RAT      [i]);
    8687#ifdef DEBUG
    8788                entry->_address       [i] = PORT_READ(in_DECOD_IN_ADDRESS       [i]);
     
    196197          {
    197198            if ((*it)->_val [i])
    198               log_printf(TRACE,Decod_queue,FUNCTION,"    * [%.4d][%.4d] %.1d, %.3d %.2d, %.2d %.3d %.1d %.1d, 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d"
     199              log_printf(TRACE,Decod_queue,FUNCTION,"    * [%.4d][%.4d] %.1d, %.3d %.2d, %.2d %.3d %.1d %.1d %.1d, 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d"
    199200                         ,x
    200201                         ,i
     
    206207                         ,(*it)->_no_execute    [i]
    207208                         ,(*it)->_is_delay_slot [i]
     209                         ,(*it)->_save_rat      [i]
    208210                         ,(*it)->_address       [i]
    209211                         ,(*it)->_address       [i]<<2
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h

    r137 r139  
    9292  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_LAST_EVENT                   ;//[nb_inst_decod]
    9393  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_IS_DELAY_SLOT                ;//[nb_inst_decod]
     94  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_SAVE_RAT                     ;//[nb_inst_decod]
    9495#ifdef DEBUG
    9596  public    : SC_OUT(Tgeneral_data_t    )  ** out_DECOD_ADDRESS                      ;//[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp

    r137 r139  
    8989      ALLOC1_SIGNAL_OUT(out_DECOD_LAST_EVENT   ,"last_event"   ,Tcontrol_t        ,1                                   );
    9090      ALLOC1_SIGNAL_OUT(out_DECOD_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t        ,1                                   );
     91      ALLOC1_SIGNAL_OUT(out_DECOD_SAVE_RAT     ,"save_rat"     ,Tcontrol_t        ,1                                   );
    9192#ifdef DEBUG
    9293      ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS      ,"address"      ,Tgeneral_data_t   ,_param->_size_instruction_address   );
     
    308309          COMPONENT_MAP(_component,src ,"out_DECOD_"   +toString(i)+"_IS_DELAY_SLOT",
    309310                                   dest, "in_DECOD_IN_"+toString(i)+"_IS_DELAY_SLOT");
     311          COMPONENT_MAP(_component,src ,"out_DECOD_"   +toString(i)+"_SAVE_RAT"     ,
     312                                   dest, "in_DECOD_IN_"+toString(i)+"_SAVE_RAT"     );
    310313#ifdef DEBUG
    311314          COMPONENT_MAP(_component,src ,"out_DECOD_"   +toString(i)+"_ADDRESS"      ,
     
    454457      // in_DECOD_IN_NO_EXECUTE     - component decod
    455458      // in_DECOD_IN_IS_DELAY_SLOT  - component decod
     459      // in_DECOD_IN_SAVE_RAT       - component decod
    456460      // in_DECOD_IN_ADDRESS        - component decod
    457461      // in_DECOD_IN_ADDRESS_NEXT   - component decod
     
    506510          PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_IS_DELAY_SLOT",
    507511                              dest,"out_DECOD_"    +toString(i)+"_IS_DELAY_SLOT");
     512          PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_SAVE_RAT"     ,
     513                              dest,"out_DECOD_"    +toString(i)+"_SAVE_RAT"     );
    508514#ifdef DEBUG
    509515          PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_ADDRESS"      ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp

    r137 r139  
    5252        DELETE1_SIGNAL(out_DECOD_LAST_EVENT                   ,_param->_nb_inst_decod,1                                   );
    5353        DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT                ,_param->_nb_inst_decod,1                                   );
     54        DELETE1_SIGNAL(out_DECOD_SAVE_RAT                     ,_param->_nb_inst_decod,1                                   );
    5455#ifdef DEBUG
    5556        DELETE1_SIGNAL(out_DECOD_ADDRESS                      ,_param->_nb_inst_decod,_param->_size_instruction_address   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/include/Front_end.h

    r137 r139  
    9999  public    : SC_OUT(Tcontrol_t           ) ** out_DECOD_LAST_EVENT                ;//[sum_inst_decod]
    100100  public    : SC_OUT(Tcontrol_t           ) ** out_DECOD_IS_DELAY_SLOT             ;//[sum_inst_decod]
     101  public    : SC_OUT(Tcontrol_t           ) ** out_DECOD_SAVE_RAT                  ;//[sum_inst_decod]
    101102#ifdef DEBUG
    102103  public    : SC_OUT(Tgeneral_data_t      ) ** out_DECOD_ADDRESS                   ;//[sum_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_allocation.cpp

    r137 r139  
    107107      ALLOC1_SIGNAL_OUT (out_DECOD_LAST_EVENT                 ,"LAST_EVENT"       ,Tcontrol_t           ,1                                   );
    108108      ALLOC1_SIGNAL_OUT (out_DECOD_IS_DELAY_SLOT              ,"IS_DELAY_SLOT"    ,Tcontrol_t           ,1                                   );
     109      ALLOC1_SIGNAL_OUT (out_DECOD_SAVE_RAT                   ,"SAVE_RAT"         ,Tcontrol_t           ,1                                   );
    109110#ifdef DEBUG
    110111      ALLOC1_SIGNAL_OUT (out_DECOD_ADDRESS                    ,"ADDRESS"          ,Tgeneral_data_t      ,_param->_size_instruction_address   );
     
    749750          PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_IS_DELAY_SLOT",
    750751                              dest,"out_DECOD_"+toString(x)+"_IS_DELAY_SLOT");
     752          PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_SAVE_RAT"     ,
     753                              dest,"out_DECOD_"+toString(x)+"_SAVE_RAT"     );
    751754#ifdef DEBUG
    752755          PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_ADDRESS"      ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_deallocation.cpp

    r137 r139  
    5454        DELETE1_SIGNAL(out_DECOD_LAST_EVENT                 ,_param->_sum_inst_decod,1                                   );
    5555        DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT              ,_param->_sum_inst_decod,1                                   );
     56        DELETE1_SIGNAL(out_DECOD_SAVE_RAT                   ,_param->_sum_inst_decod,1                                   );
    5657#ifdef DEBUG
    5758        DELETE1_SIGNAL(out_DECOD_ADDRESS                    ,_param->_sum_inst_decod,_param->_size_instruction_address   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h

    r138 r139  
    150150  public    : SC_OUT(Tspecial_address_t ) *** out_RETIRE_NUM_REG_RE_PHY_OLD        ;//[nb_rename_unit][nb_inst_retire]
    151151  public    : SC_OUT(Tspecial_address_t ) *** out_RETIRE_NUM_REG_RE_PHY_NEW        ;//[nb_rename_unit][nb_inst_retire]
     152  public    : SC_OUT(Tcontrol_t         ) *** out_RETIRE_RESTORE                   ;//[nb_rename_unit][nb_inst_retire]
     153  public    : SC_OUT(Tcontrol_t         ) *** out_RETIRE_RESTORE_RD_PHY_OLD        ;//[nb_rename_unit][nb_inst_retire]
     154  public    : SC_OUT(Tcontrol_t         ) *** out_RETIRE_RESTORE_RE_PHY_OLD        ;//[nb_rename_unit][nb_inst_retire]
    152155
    153156    // ~~~~~[ Interface : "commit" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
     
    157160//public    : SC_OUT(Tcontrol_t         ) *** out_RETIRE_EVENT_FLUSH               ;//[nb_front_end][nb_context]
    158161  public    : SC_OUT(Tcontrol_t         ) *** out_RETIRE_EVENT_STOP                ;//[nb_front_end][nb_context]
    159                                                                                    
     162  public    : SC_OUT(Tevent_type_t      ) *** out_RETIRE_EVENT_TYPE                ;//[nb_front_end][nb_context]
     163  public    : SC_OUT(Tdepth_t           ) *** out_RETIRE_EVENT_DEPTH               ;//[nb_front_end][nb_context]
     164
    160165    // ~~~~~[ Interface : "commit" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
    161166  public    : SC_IN (Tcontrol_t         )  **  in_COMMIT_VAL                       ;//[nb_inst_commit]
     
    260265
    261266  private   : Tcommit_event_state_t        ** reg_EVENT_STATE                      ;//[nb_front_end][nb_context]
     267  private   : Tevent_type_t                ** reg_EVENT_TYPE                       ;//[nb_front_end][nb_context]
    262268//private   : bool                         ** reg_EVENT_FLUSH                      ;//[nb_front_end][nb_context]
    263269//private   : bool                         ** reg_EVENT_STOP                       ;//[nb_front_end][nb_context]
    264   private   : uint32_t                     ** reg_EVENT_NUM_BANK                   ;//[nb_front_end][nb_context]
    265   private   : uint32_t                     ** reg_EVENT_NUM_PTR                    ;//[nb_front_end][nb_context]
     270//private   : uint32_t                     ** reg_EVENT_NUM_BANK                   ;//[nb_front_end][nb_context]
     271//private   : uint32_t                     ** reg_EVENT_NUM_PTR                    ;//[nb_front_end][nb_context]
    266272//private   : bool                         ** reg_EVENT_CAN_RESTART                ;//[nb_front_end][nb_context]
    267273  private   : uint32_t                     ** reg_EVENT_PACKET                     ;//[nb_front_end][nb_context]
     274  private   : Tdepth_t                     ** reg_EVENT_DEPTH                      ;//[nb_front_end][nb_context]
    268275  private   : uint32_t                     ** reg_EVENT_NB_INST                    ;//[nb_front_end][nb_context]
    269276  private   : bool                         ** reg_EVENT_LAST                       ;//[nb_front_end][nb_context]
     
    279286  private   : Taddress_t                   ** reg_PC_CURRENT_IS_DS_TAKE            ;//[nb_front_end][nb_context]
    280287  private   : Taddress_t                   ** reg_PC_NEXT                          ;//[nb_front_end][nb_context]
     288
     289  private   : bool                        *** rat_gpr_update_table                 ;//[nb_front_end][nb_context][nb_general_register_logic]
     290  private   : bool                        *** rat_spr_update_table                 ;//[nb_front_end][nb_context][nb_special_register_logic]
    281291                                                                                   
    282292    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
     
    292302  private   : entry_t *                    ** internal_BANK_COMMIT_ENTRY           ;//[nb_bank][nb_bank_access_commit]
    293303
    294   private   : uint32_t                        internal_BANK_RETIRE_HEAD            ;
    295   private   : Tcontrol_t                    * internal_BANK_RETIRE_VAL             ;//[nb_bank]
    296   private   : uint32_t                      * internal_BANK_RETIRE_NUM_RENAME_UNIT ;//[nb_bank]
    297   private   : uint32_t                      * internal_BANK_RETIRE_NUM_INST        ;//[nb_bank]
     304  private   : uint32_t                        internal_BANK_RETIRE_HEAD              ;
     305  private   : Tcontrol_t                    * internal_BANK_RETIRE_VAL               ;//[nb_bank]
     306  private   : uint32_t                      * internal_BANK_RETIRE_NUM_RENAME_UNIT   ;//[nb_bank]
     307  private   : uint32_t                      * internal_BANK_RETIRE_NUM_INST          ;//[nb_bank]
     308//private   : Tcontrol_t                    * internal_BANK_RETIRE_RESTORE           ;//[nb_bank]
     309  private   : Tcontrol_t                    * internal_BANK_RETIRE_RESTORE_RD_PHY_OLD;//[nb_bank]
     310  private   : Tcontrol_t                    * internal_BANK_RETIRE_RESTORE_RE_PHY_OLD;//[nb_bank]
    298311
    299312  private   : Tcontrol_t                    * internal_REEXECUTE_VAL               ;//[nb_inst_reexecute]
     
    309322
    310323  private   : Tcontrol_t                   ** internal_RETIRE_EVENT_VAL            ;//[nb_front_end][nb_context]
     324
     325  private   : bool                        *** internal_rat_gpr_update_table;//[nb_front_end][nb_context][nb_general_register_logic]
     326  private   : bool                        *** internal_rat_spr_update_table;//[nb_front_end][nb_context][nb_special_register_logic]
    311327#endif
    312328
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Parameters.h

    r138 r139  
    4141//public : uint32_t             _size_general_register              ;
    4242//public : uint32_t             _size_special_register              ;
     43  public : Trat_scheme_t      * _rat_scheme                         ;//[nb_front_end]
    4344  public : Tpriority_t          _priority                           ;
    4445  public : Tload_balancing_t    _load_balancing                     ;
    4546  public : uint32_t             _nb_rename_unit_select              ;
    4647  public : uint32_t             _nb_thread                          ;
    47   public : uint32_t          ** _translate_num_context_to_num_thread; //[nb_front_end][nb_context]
     48  public : uint32_t          ** _translate_num_context_to_num_thread;//[nb_front_end][nb_context]
    4849  public : const uint32_t       _nb_bank_access_commit              ;
    49                              
     50
    5051  public : uint32_t             _max_nb_context          ;
    5152  public : uint32_t             _max_nb_inst_insert      ;
     
    9697                        uint32_t             size_general_register              ,
    9798                        uint32_t             size_special_register              ,
     99                        Trat_scheme_t      * rat_scheme                         ,//[nb_front_end]
    98100                        Tpriority_t          priority                           ,
    99101                        Tload_balancing_t    load_balancing                     ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h

    r138 r139  
    7171
    7272#define commit_event_state_to_event_state(x) ((x==COMMIT_EVENT_STATE_EVENT)?EVENT_STATE_EVENT:((x==COMMIT_EVENT_STATE_WAIT_END)?EVENT_STATE_WAITEND:EVENT_STATE_NO_EVENT))
     73#define rob_state_to_event_type(x) ((x==ROB_END_BRANCH_MISS)?EVENT_TYPE_BRANCH_MISS_SPECULATION:((x==ROB_END_LOAD_MISS)?EVENT_TYPE_LOAD_MISS_SPECULATION:((x==ROB_END_EXCEPTION)?EVENT_TYPE_EXCEPTION:EVENT_TYPE_NONE)))
    7374
    7475// #define commit_event_state_to_event_state(x) ((x==COMMIT_EVENT_STATE_EVENT)?EVENT_STATE_EVENT:((x==COMMIT_EVENT_STATE_WAIT_END)?EVENT_STATE_WAITEND:((x==COMMIT_EVENT_STATE_END)?EVENT_STATE_END:EVENT_STATE_NO_EVENT)))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp

    r137 r139  
    120120      _ALLOC2_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_WRITE   ,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr       ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    121121      _ALLOC2_SIGNAL_OUT(out_RETIRE_LOAD_QUEUE_PTR_WRITE    ,"load_queue_ptr_write" ,Tlsq_ptr_t        ,_param->_size_load_queue_ptr        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    122 //       _ALLOC2_SIGNAL_OUT(out_RETIRE_READ_RA                 ,"read_ra"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    123 //       _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RA_PHY          ,"num_reg_ra_phy"       ,Tgeneral_address_t,_param->_size_general_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    124 //       _ALLOC2_SIGNAL_OUT(out_RETIRE_READ_RB                 ,"read_rb"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    125 //       _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RB_PHY          ,"num_reg_rb_phy"       ,Tgeneral_address_t,_param->_size_general_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    126 //       _ALLOC2_SIGNAL_OUT(out_RETIRE_READ_RC                 ,"read_rc"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    127 //       _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RC_PHY          ,"num_reg_rc_phy"       ,Tspecial_address_t,_param->_size_special_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     122//    _ALLOC2_SIGNAL_OUT(out_RETIRE_READ_RA                 ,"read_ra"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     123//    _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RA_PHY          ,"num_reg_ra_phy"       ,Tgeneral_address_t,_param->_size_general_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     124//    _ALLOC2_SIGNAL_OUT(out_RETIRE_READ_RB                 ,"read_rb"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     125//    _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RB_PHY          ,"num_reg_rb_phy"       ,Tgeneral_address_t,_param->_size_general_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     126//    _ALLOC2_SIGNAL_OUT(out_RETIRE_READ_RC                 ,"read_rc"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     127//    _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RC_PHY          ,"num_reg_rc_phy"       ,Tspecial_address_t,_param->_size_special_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    128128      _ALLOC2_SIGNAL_OUT(out_RETIRE_WRITE_RD                ,"write_rd"             ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    129129      _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RD_LOG          ,"num_reg_rd_log"       ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     
    134134      _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RE_PHY_OLD      ,"num_reg_re_phy_old"   ,Tspecial_address_t,_param->_size_special_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    135135      _ALLOC2_SIGNAL_OUT(out_RETIRE_NUM_REG_RE_PHY_NEW      ,"num_reg_re_phy_new"   ,Tspecial_address_t,_param->_size_special_register      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     136      _ALLOC2_SIGNAL_OUT(out_RETIRE_RESTORE                 ,"RESTORE"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     137      _ALLOC2_SIGNAL_OUT(out_RETIRE_RESTORE_RD_PHY_OLD      ,"RESTORE_RD_PHY_OLD"   ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     138      _ALLOC2_SIGNAL_OUT(out_RETIRE_RESTORE_RE_PHY_OLD      ,"RESTORE_RE_PHY_OLD"   ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
    136139
    137140      ALLOC2_INTERFACE_END(_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
     
    142145      ALLOC2_INTERFACE_BEGIN("retire_event",OUT,SOUTH, _("Interface to update rename_unit."),_param->_nb_front_end,_param->_nb_context[it1]);
    143146   
    144       _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_VAL               ,VAL,_param->_nb_front_end,_param->_nb_context[it1]);
    145       _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_ACK               ,ACK,_param->_nb_front_end,_param->_nb_context[it1]);
    146       _ALLOC2_SIGNAL_OUT(out_RETIRE_EVENT_STATE             ,"state"                ,Tevent_state_t    ,_param->_size_event_state           ,_param->_nb_front_end,_param->_nb_context[it1]);
    147 //    _ALLOC2_SIGNAL_OUT(out_RETIRE_EVENT_FLUSH             ,"flush"                ,Tcontrol_t        ,1                                   ,_param->_nb_front_end,_param->_nb_context[it1]);
    148       _ALLOC2_SIGNAL_OUT(out_RETIRE_EVENT_STOP              ,"stop"                 ,Tcontrol_t        ,1                                   ,_param->_nb_front_end,_param->_nb_context[it1]);
     147      _ALLOC2_VALACK_OUT     (out_RETIRE_EVENT_VAL   ,VAL,_param->_nb_front_end,_param->_nb_context[it1]);
     148      _ALLOC2_VALACK_IN      ( in_RETIRE_EVENT_ACK   ,ACK,_param->_nb_front_end,_param->_nb_context[it1]);
     149      _ALLOC2_SIGNAL_OUT     (out_RETIRE_EVENT_STATE ,"state"      ,Tevent_state_t    ,_param->_size_event_state,_param->_nb_front_end,_param->_nb_context[it1]);
     150//    _ALLOC2_SIGNAL_OUT     (out_RETIRE_EVENT_FLUSH ,"flush"      ,Tcontrol_t        ,1                        ,_param->_nb_front_end,_param->_nb_context[it1]);
     151      _ALLOC2_SIGNAL_OUT     (out_RETIRE_EVENT_STOP  ,"stop"       ,Tcontrol_t        ,1                        ,_param->_nb_front_end,_param->_nb_context[it1]);
     152      _ALLOC2_SIGNAL_OUT_COND(out_RETIRE_EVENT_TYPE  ,"type"       ,Tevent_type_t     ,_param->_size_event_type ,_param->_nb_front_end,_param->_nb_context[it1],_param->_rat_scheme[it1] == RAT_DEPTH_SAVE);
     153      _ALLOC2_SIGNAL_OUT_COND(out_RETIRE_EVENT_DEPTH ,"depth"      ,Tdepth_t          ,_param->_size_depth      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_rat_scheme[it1] == RAT_DEPTH_SAVE);
    149154
    150155      ALLOC2_INTERFACE_END(_param->_nb_front_end,_param->_nb_context[it1]);
     
    306311    ALLOC2(internal_BANK_COMMIT_ENTRY           ,entry_t * ,_param->_nb_bank,_param->_nb_bank_access_commit);
    307312
    308     ALLOC1(internal_BANK_RETIRE_VAL             ,Tcontrol_t,_param->_nb_bank);
    309     ALLOC1(internal_BANK_RETIRE_NUM_RENAME_UNIT ,uint32_t  ,_param->_nb_bank);
    310     ALLOC1(internal_BANK_RETIRE_NUM_INST        ,uint32_t  ,_param->_nb_bank);
     313    ALLOC1(internal_BANK_RETIRE_VAL               ,Tcontrol_t,_param->_nb_bank);
     314    ALLOC1(internal_BANK_RETIRE_NUM_RENAME_UNIT   ,uint32_t  ,_param->_nb_bank);
     315    ALLOC1(internal_BANK_RETIRE_NUM_INST          ,uint32_t  ,_param->_nb_bank);
     316//  ALLOC1(internal_BANK_RETIRE_RESTORE           ,Tcontrol_t,_param->_nb_bank);
     317    ALLOC1(internal_BANK_RETIRE_RESTORE_RD_PHY_OLD,Tcontrol_t,_param->_nb_bank);
     318    ALLOC1(internal_BANK_RETIRE_RESTORE_RE_PHY_OLD,Tcontrol_t,_param->_nb_bank);
    311319
    312320    ALLOC1(internal_REEXECUTE_VAL               ,Tcontrol_t,_param->_nb_inst_reexecute);
     
    318326    ALLOC2(internal_EVENT_ACK                   ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
    319327    ALLOC2(internal_RETIRE_EVENT_VAL            ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
     328
     329    ALLOC3(internal_rat_gpr_update_table        ,bool      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     330    ALLOC3(internal_rat_spr_update_table        ,bool      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     331
    320332
    321333    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     
    329341   
    330342    ALLOC2(reg_EVENT_STATE          ,Tcommit_event_state_t,_param->_nb_front_end,_param->_nb_context [it1]);
     343    ALLOC2(reg_EVENT_TYPE           ,Tevent_type_t        ,_param->_nb_front_end,_param->_nb_context [it1]);
    331344//  ALLOC2(reg_EVENT_FLUSH          ,bool                 ,_param->_nb_front_end,_param->_nb_context [it1]);
    332345//  ALLOC2(reg_EVENT_STOP           ,bool                 ,_param->_nb_front_end,_param->_nb_context [it1]);
    333     ALLOC2(reg_EVENT_NUM_BANK       ,uint32_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
    334     ALLOC2(reg_EVENT_NUM_PTR        ,uint32_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
     346//  ALLOC2(reg_EVENT_NUM_BANK       ,uint32_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
     347//  ALLOC2(reg_EVENT_NUM_PTR        ,uint32_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
    335348//  ALLOC2(reg_EVENT_CAN_RESTART    ,bool                 ,_param->_nb_front_end,_param->_nb_context [it1]);
    336349    ALLOC2(reg_EVENT_PACKET         ,uint32_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
     350    ALLOC2(reg_EVENT_DEPTH          ,Tdepth_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
    337351    ALLOC2(reg_EVENT_NB_INST        ,uint32_t             ,_param->_nb_front_end,_param->_nb_context [it1]);
    338352    ALLOC2(reg_EVENT_LAST           ,bool                 ,_param->_nb_front_end,_param->_nb_context [it1]);
     
    348362    ALLOC2(reg_PC_CURRENT_IS_DS_TAKE,Taddress_t           ,_param->_nb_front_end,_param->_nb_context [it1]);
    349363    ALLOC2(reg_PC_NEXT              ,Taddress_t           ,_param->_nb_front_end,_param->_nb_context [it1]);
     364
     365    ALLOC3(rat_gpr_update_table     ,bool                 ,_param->_nb_front_end,_param->_nb_context [it1],_param->_nb_general_register_logic);
     366    ALLOC3(rat_spr_update_table     ,bool                 ,_param->_nb_front_end,_param->_nb_context [it1],_param->_nb_special_register_logic);
    350367      }
    351368
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_deallocation.cpp

    r137 r139  
    9696        DELETE2_SIGNAL(out_RETIRE_NUM_REG_RE_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_special_register      );
    9797        DELETE2_SIGNAL(out_RETIRE_NUM_REG_RE_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_special_register      );
    98 
    99         DELETE2_SIGNAL(out_RETIRE_EVENT_VAL               ,_param->_nb_front_end,_param->_nb_context[it1],1);
    100         DELETE2_SIGNAL( in_RETIRE_EVENT_ACK               ,_param->_nb_front_end,_param->_nb_context[it1],1);
    101         DELETE2_SIGNAL(out_RETIRE_EVENT_STATE             ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_event_state);
    102 //      DELETE2_SIGNAL(out_RETIRE_EVENT_FLUSH             ,_param->_nb_front_end,_param->_nb_context[it1],1);
    103         DELETE2_SIGNAL(out_RETIRE_EVENT_STOP              ,_param->_nb_front_end,_param->_nb_context[it1],1);
     98        DELETE2_SIGNAL(out_RETIRE_RESTORE                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1);
     99        DELETE2_SIGNAL(out_RETIRE_RESTORE_RD_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1);
     100        DELETE2_SIGNAL(out_RETIRE_RESTORE_RE_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1);
     101
     102        DELETE2_SIGNAL     (out_RETIRE_EVENT_VAL               ,_param->_nb_front_end,_param->_nb_context[it1],1);
     103        DELETE2_SIGNAL     ( in_RETIRE_EVENT_ACK               ,_param->_nb_front_end,_param->_nb_context[it1],1);
     104        DELETE2_SIGNAL     (out_RETIRE_EVENT_STATE             ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_event_state);
     105//      DELETE2_SIGNAL     (out_RETIRE_EVENT_FLUSH             ,_param->_nb_front_end,_param->_nb_context[it1],1);
     106        DELETE2_SIGNAL     (out_RETIRE_EVENT_STOP              ,_param->_nb_front_end,_param->_nb_context[it1],1);
     107        DELETE2_SIGNAL_COND(out_RETIRE_EVENT_TYPE              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_event_type,_param->_rat_scheme[it1] == RAT_DEPTH_SAVE);
     108        DELETE2_SIGNAL_COND(out_RETIRE_EVENT_DEPTH             ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_depth     ,_param->_rat_scheme[it1] == RAT_DEPTH_SAVE);
    104109
    105110        DELETE1_SIGNAL( in_COMMIT_VAL               ,_param->_nb_inst_commit,1                             );
     
    187192        DELETE2(internal_BANK_COMMIT_ENTRY           ,_param->_nb_bank,_param->_nb_bank_access_commit);
    188193       
    189         DELETE1(internal_BANK_RETIRE_VAL             ,_param->_nb_bank);
    190         DELETE1(internal_BANK_RETIRE_NUM_RENAME_UNIT ,_param->_nb_bank);
    191         DELETE1(internal_BANK_RETIRE_NUM_INST        ,_param->_nb_bank);
     194        DELETE1(internal_BANK_RETIRE_VAL               ,_param->_nb_bank);
     195        DELETE1(internal_BANK_RETIRE_NUM_RENAME_UNIT   ,_param->_nb_bank);
     196        DELETE1(internal_BANK_RETIRE_NUM_INST          ,_param->_nb_bank);
     197//      DELETE1(internal_BANK_RETIRE_RESTORE           ,_param->_nb_bank);
     198        DELETE1(internal_BANK_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_bank);
     199        DELETE1(internal_BANK_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_bank);
    192200       
    193201        DELETE1(internal_REEXECUTE_VAL               ,_param->_nb_inst_reexecute);
     
    200208       
    201209        DELETE2(internal_RETIRE_EVENT_VAL            ,_param->_nb_front_end,_param->_nb_context[it1]);
     210
     211        DELETE3(internal_rat_gpr_update_table        ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     212        DELETE3(internal_rat_spr_update_table        ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    202213       
    203214        // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     
    217228
    218229        DELETE2(reg_EVENT_STATE          ,_param->_nb_front_end,_param->_nb_context [it1]);
     230        DELETE2(reg_EVENT_TYPE           ,_param->_nb_front_end,_param->_nb_context [it1]);
    219231//      DELETE2(reg_EVENT_FLUSH          ,_param->_nb_front_end,_param->_nb_context [it1]);
    220232//      DELETE2(reg_EVENT_STOP           ,_param->_nb_front_end,_param->_nb_context [it1]);
    221         DELETE2(reg_EVENT_NUM_BANK       ,_param->_nb_front_end,_param->_nb_context [it1]);
    222         DELETE2(reg_EVENT_NUM_PTR        ,_param->_nb_front_end,_param->_nb_context [it1]);
     233//      DELETE2(reg_EVENT_NUM_BANK       ,_param->_nb_front_end,_param->_nb_context [it1]);
     234//      DELETE2(reg_EVENT_NUM_PTR        ,_param->_nb_front_end,_param->_nb_context [it1]);
    223235//      DELETE2(reg_EVENT_CAN_RESTART    ,_param->_nb_front_end,_param->_nb_context [it1]);
    224236        DELETE2(reg_EVENT_PACKET         ,_param->_nb_front_end,_param->_nb_context [it1]);
     237        DELETE2(reg_EVENT_DEPTH          ,_param->_nb_front_end,_param->_nb_context [it1]);
    225238        DELETE2(reg_EVENT_NB_INST        ,_param->_nb_front_end,_param->_nb_context [it1]);
    226239        DELETE2(reg_EVENT_LAST           ,_param->_nb_front_end,_param->_nb_context [it1]);
     
    236249        DELETE2(reg_PC_CURRENT_IS_DS_TAKE,_param->_nb_front_end,_param->_nb_context [it1]);
    237250        DELETE2(reg_PC_NEXT              ,_param->_nb_front_end,_param->_nb_context [it1]);
     251
     252        DELETE3(rat_gpr_update_table     ,_param->_nb_front_end,_param->_nb_context [it1],_param->_nb_general_register_logic);
     253        DELETE3(rat_spr_update_table     ,_param->_nb_front_end,_param->_nb_context [it1],_param->_nb_special_register_logic);
    238254      }
    239255
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_genMealy_retire.cpp

    r133 r139  
    6060          spr_write_sr_cy     [i][j] = 0; // not necessary
    6161          spr_write_sr_ov     [i][j] = 0; // not necessary
     62
     63          // Init internal update table
     64         
     65          // Test if an event occure
     66          // bool event = (PORT_READ(in_RETIRE_EVENT_STATE [i][j]) != EVENT_STATE_NO_EVENT);
     67          bool reset_update_table = (commit_event_state_to_event_state(reg_EVENT_STATE[i][j]) == EVENT_STATE_EVENT);
     68
     69          log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * reset_update_table : %d",reset_update_table);
     70
     71          // not event -> update_table == 1 -> always update
     72          // event     -> update_table and not reset
     73          for (uint32_t k=0; k<_param->_nb_general_register_logic; ++k)
     74            internal_rat_gpr_update_table [i][j][k] = // not event or
     75                                                      (not reset_update_table and rat_gpr_update_table [i][j][k]);
     76          for (uint32_t k=0; k<_param->_nb_special_register_logic; ++k)
     77            internal_rat_spr_update_table [i][j][k] = // not event or
     78                                                      (not reset_update_table and rat_spr_update_table [i][j][k]);
    6279        }
    6380
     
    116133                        )
    117134                      {
     135                        Tcontrol_t         write_rd       = entry->write_rd;
    118136                        Tcontrol_t         write_re       = entry->write_re;
     137                        Tgeneral_address_t num_reg_rd_log = entry->num_reg_rd_log;
    119138                        Tspecial_address_t num_reg_re_log = entry->num_reg_re_log;
    120139                       
     
    172191                          }
    173192                       
    174                         internal_BANK_RETIRE_NUM_RENAME_UNIT [num_bank] = x;
    175                         internal_BANK_RETIRE_NUM_INST        [num_bank] = y;
     193                        // Restore Old Register
     194                        Tcontrol_t retire_restore = (commit_event_state_to_event_state(reg_EVENT_STATE[front_end_id][context_id]) != EVENT_STATE_NO_EVENT);
     195
     196                        // Test if event -> need restore ?
     197                        if (retire_restore)
     198                          {
     199                            log_printf(TRACE,Commit_unit,FUNCTION,"      * Restore");
     200                           
     201                            // Test and update update table
     202                            if (write_rd)
     203                              {
     204                                internal_BANK_RETIRE_RESTORE_RD_PHY_OLD [num_bank] = (internal_rat_gpr_update_table[front_end_id][context_id][num_reg_rd_log] == 0);
     205
     206                                internal_rat_gpr_update_table[front_end_id][context_id][num_reg_rd_log] = 1;
     207                              }
     208                            if (write_re)
     209                              {
     210                                internal_BANK_RETIRE_RESTORE_RE_PHY_OLD [num_bank] = (internal_rat_spr_update_table[front_end_id][context_id][num_reg_re_log] == 0);
     211                               
     212                                internal_rat_spr_update_table[front_end_id][context_id][num_reg_re_log] = 1;
     213                              }
     214
     215                            log_printf(TRACE,Commit_unit,FUNCTION,"      * restore_rd_phy_old   : %d",internal_BANK_RETIRE_RESTORE_RD_PHY_OLD [num_bank]);
     216                            log_printf(TRACE,Commit_unit,FUNCTION,"      * restore_re_phy_old   : %d",internal_BANK_RETIRE_RESTORE_RE_PHY_OLD [num_bank]);
     217                          }
     218
     219                        internal_BANK_RETIRE_NUM_RENAME_UNIT    [num_bank] = x;
     220                        internal_BANK_RETIRE_NUM_INST           [num_bank] = y;
    176221                       
    177222                        if (_param->_have_port_front_end_id)
     
    199244                        PORT_WRITE(out_RETIRE_NUM_REG_RE_PHY_OLD    [x][y], entry->num_reg_re_phy_old   );
    200245                        PORT_WRITE(out_RETIRE_NUM_REG_RE_PHY_NEW    [x][y], entry->num_reg_re_phy_new   );
     246                        PORT_WRITE(out_RETIRE_RESTORE               [x][y],retire_restore);
     247                        PORT_WRITE(out_RETIRE_RESTORE_RD_PHY_OLD    [x][y],internal_BANK_RETIRE_RESTORE_RD_PHY_OLD [num_bank]);
     248                        PORT_WRITE(out_RETIRE_RESTORE_RE_PHY_OLD    [x][y],internal_BANK_RETIRE_RESTORE_RE_PHY_OLD [num_bank]);
    201249                       
    202250                        // Event -> rob must be manage this event
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_genMoore.cpp

    r129 r139  
    331331          PORT_WRITE(out_RETIRE_EVENT_STOP  [i][j], ((reg_EVENT_STATE [i][j] == COMMIT_EVENT_STATE_NOT_YET_EVENT) or
    332332                                                     reg_EVENT_NEXT_STOP [i][j]));
     333          if (_param->_rat_scheme[i] == RAT_DEPTH_SAVE)
     334            {
     335          PORT_WRITE(out_RETIRE_EVENT_TYPE  [i][j], reg_EVENT_TYPE  [i][j]);
     336          if (_param->_have_port_depth)
     337          PORT_WRITE(out_RETIRE_EVENT_DEPTH [i][j], reg_EVENT_DEPTH [i][j]);
     338            }
    333339        }
    334340      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp

    r137 r139  
    5454//            reg_EVENT_FLUSH           [i][j] = false;
    5555//            reg_EVENT_STOP            [i][j] = false;
    56               reg_EVENT_NUM_BANK        [i][j] = 0; // not necessary
    57               reg_EVENT_NUM_PTR         [i][j] = 0; // not necessary
    58             //reg_EVENT_CAN_RESTART     [i][j] = 0; // not necessary
     56//            reg_EVENT_NUM_BANK        [i][j] = 0; // not necessary
     57//            reg_EVENT_NUM_PTR         [i][j] = 0; // not necessary
     58//            reg_EVENT_CAN_RESTART     [i][j] = 0; // not necessary
    5959              reg_EVENT_PACKET          [i][j] = 0; // not necessary
     60              reg_EVENT_DEPTH           [i][j] = 0; // not necessary
    6061              reg_EVENT_NB_INST         [i][j] = 0;
    6162              reg_EVENT_LAST            [i][j] = false;
     
    7273              reg_PC_NEXT               [i][j] = (0x100+4)>>2;
    7374            }
     75
     76        // Resert RAT_UPDATE_TABLE
     77        for (uint32_t i=0; i<_param->_nb_front_end; i++)
     78          for (uint32_t j=0; j<_param->_nb_context[i]; j++)
     79            {
     80              for (uint32_t k=0; k<_param->_nb_general_register_logic; k++)
     81                rat_gpr_update_table       [i][j][k] = false; // not necessary
     82              for (uint32_t k=0; k<_param->_nb_special_register_logic; k++)
     83                rat_spr_update_table       [i][j][k] = false; // not necessary
     84            }
    7485
    7586        // Reset priority algorithm
     
    114125//                         else
    115126                          reg_EVENT_STATE [i][j] = COMMIT_EVENT_STATE_WAIT_END;
     127                         
     128                          // Reset update_table
     129                          for (uint32_t k=0; k<_param->_nb_general_register_logic; k++)
     130                            rat_gpr_update_table      [i][j][k] = false;
     131                          for (uint32_t k=0; k<_param->_nb_special_register_logic; k++)
     132                            rat_spr_update_table      [i][j][k] = false;
    116133                      }
    117134                   
     
    180197                        else
    181198                          {
     199                            uint32_t next_packet = reg_EVENT_NEXT_PACKET [i][j];
     200
    182201                            reg_EVENT_STATE         [i][j] = COMMIT_EVENT_STATE_NOT_YET_EVENT;
    183202
    184203                            reg_EVENT_NEXT_STOP     [i][j] = false;
    185                             reg_EVENT_PACKET        [i][j] = reg_EVENT_NEXT_PACKET [i][j];
     204                            reg_EVENT_PACKET        [i][j] = next_packet;
     205//                          reg_EVENT_DEPTH         [i][j] = _rob[next_packet].depth;
    186206                            reg_EVENT_NB_INST       [i][j] = reg_NB_INST_COMMIT_ALL [i][j];
    187207                          //reg_EVENT_STOP          [i][j] = true;
     
    596616                                reg_EVENT_STATE         [front_end_id][context_id] = COMMIT_EVENT_STATE_NOT_YET_EVENT;
    597617
     618//                              reg_EVENT_DEPTH         [front_end_id][context_id] = _rob[packet].depth;
    598619                                reg_EVENT_NB_INST       [front_end_id][context_id] = reg_NB_INST_COMMIT_ALL [front_end_id][context_id];
    599620
     
    697718#endif
    698719
    699 
    700720#ifdef STATISTICS
    701             if (usage_is_set(_usage,USE_STATISTICS))
    702               (*_stat_nb_inst_retire [x]) ++;
    703                
     721                if (usage_is_set(_usage,USE_STATISTICS))
     722                  (*_stat_nb_inst_retire [x]) ++;
    704723#endif
    705724               
     
    709728                entry->state_old = entry->state;
    710729                entry->state     = ROB_END;
     730
     731
     732                // Update RAT_UPDATE_TABLE
     733                Tcontext_t front_end_id = entry->front_end_id;
     734                Tcontext_t context_id   = entry->context_id  ;
     735
     736                if (entry->write_rd and internal_BANK_RETIRE_RESTORE_RD_PHY_OLD [num_bank])
     737                  rat_gpr_update_table [front_end_id][context_id][entry->num_reg_rd_log] = true;
     738                if (entry->write_re and internal_BANK_RETIRE_RESTORE_RE_PHY_OLD [num_bank])
     739                  rat_spr_update_table [front_end_id][context_id][entry->num_reg_re_log] = true;
    711740              }
    712741          }
     
    771800                      {
    772801                          reg_EVENT_STATE         [front_end_id][context_id] = COMMIT_EVENT_STATE_EVENT;
     802                          reg_EVENT_TYPE          [front_end_id][context_id] = rob_state_to_event_type(state);
    773803//                        reg_EVENT_STOP          [front_end_id][context_id] = false; // instruction flow can continue
    774804                          reg_EVENT_LAST          [front_end_id][context_id] = false;
    775805                          // it the head !
    776806                          reg_EVENT_PACKET        [front_end_id][context_id] = packet_id;
    777                    
     807                          reg_EVENT_DEPTH         [front_end_id][context_id] = entry->depth;
     808
    778809//                           // If event is an load_miss, many instruction can be inserted.
    779810//                           // -> new last instruction
     
    947978                      // In all case, stop instruction flow
    948979                      reg_EVENT_STATE         [entry->front_end_id][entry->context_id] = COMMIT_EVENT_STATE_NOT_YET_EVENT;
     980//                    reg_EVENT_DEPTH         [entry->front_end_id][entry->context_id] = _rob[packet]._depth;
    949981                      reg_EVENT_NB_INST       [entry->front_end_id][entry->context_id] = reg_NB_INST_COMMIT_ALL [entry->front_end_id][entry->context_id];
    950                                
    951982//                    reg_EVENT_STOP          [entry->front_end_id][entry->context_id] = true;
    952983
     
    12831314//          log_printf(TRACE,Commit_unit,FUNCTION,"      * EVENT             : %d (bank %d, ptr %d)",((reg_EVENT_NUM_PTR [i][j] << _param->_shift_num_slot) | reg_EVENT_NUM_BANK [i][j]), reg_EVENT_NUM_BANK [i][j],reg_EVENT_NUM_PTR [i][j]);
    12841315//          log_printf(TRACE,Commit_unit,FUNCTION,"      * EVENT_CAN_RESTART : %d",reg_EVENT_CAN_RESTART [i][j]);
     1316            log_printf(TRACE,Commit_unit,FUNCTION,"      * EVENT_DEPTH       : %d - type %s",reg_EVENT_DEPTH [i][j],toString(reg_EVENT_TYPE [i][j]).c_str());
    12851317            log_printf(TRACE,Commit_unit,FUNCTION,"      * EVENT_LAST        : %d - packet %d - ptr %d (bank %d, ptr %d)",reg_EVENT_LAST [i][j],reg_EVENT_PACKET[i][j],((reg_EVENT_LAST_NUM_PTR [i][j] << _param->_shift_num_slot) | reg_EVENT_LAST_NUM_BANK [i][j]), reg_EVENT_LAST_NUM_BANK [i][j],reg_EVENT_LAST_NUM_PTR [i][j]);
    12861318            log_printf(TRACE,Commit_unit,FUNCTION,"      * EVENT_NEXT        : stop : %d - packet : %d",reg_EVENT_NEXT_STOP  [i][j],reg_EVENT_NEXT_PACKET[i][j]);
     
    13701402        }
    13711403
     1404      log_printf(TRACE,Commit_unit,FUNCTION,"  * Dump RAT Update Table");
     1405      for (uint32_t i=0; i<_param->_nb_front_end; ++i)
     1406        for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
     1407          {
     1408            {
     1409              std::string str = "";
     1410              for (uint32_t k=0; k<_param->_nb_general_register_logic; k++)
     1411                str+=toString("%.1d ",rat_gpr_update_table[i][j][k]);
     1412             
     1413              log_printf(TRACE,Commit_unit,FUNCTION,"    * GPR [%d][%d] %s",i,j,str.c_str());
     1414            }
     1415
     1416            {
     1417              std::string str = "";
     1418              for (uint32_t k=0; k<_param->_nb_special_register_logic; k++)
     1419                str+=toString("%.1d ",rat_spr_update_table[i][j][k]);
     1420             
     1421              log_printf(TRACE,Commit_unit,FUNCTION,"    * GPR [%d][%d] %s",i,j,str.c_str());
     1422            }
     1423          }
     1424
    13721425      log_printf(TRACE,Commit_unit,FUNCTION,"    * nb_write_rd   : %d",nb_write_rd);
    13731426      log_printf(TRACE,Commit_unit,FUNCTION,"    * nb_write_re   : %d",nb_write_re);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters.cpp

    r138 r139  
    2222#define FUNCTION "Commit_unit::Parameters"
    2323  Parameters::Parameters (uint32_t             nb_front_end                       ,
    24                           uint32_t           * nb_context                         ,
    25                           uint32_t             nb_rename_unit                     ,
    26                           uint32_t             size_queue                         ,
    27                           uint32_t             nb_bank                            ,
    28                           Tretire_ooo_scheme_t retire_ooo_scheme                  ,
    29                           uint32_t           * nb_inst_insert                     ,
    30                           uint32_t           * nb_inst_retire                     ,
    31                           uint32_t             nb_inst_commit                     ,
    32                           uint32_t             nb_inst_reexecute                  ,
    33                           uint32_t             nb_inst_branch_complete            ,
    34                           uint32_t          ** nb_branch_speculated               ,
     24                          uint32_t           * nb_context                         ,//[nb_front_end]           
     25                          uint32_t             nb_rename_unit                     ,                           
     26                          uint32_t             size_queue                         ,                           
     27                          uint32_t             nb_bank                            ,                           
     28                          Tretire_ooo_scheme_t retire_ooo_scheme                  ,                           
     29                          uint32_t           * nb_inst_insert                     ,//[nb_rename_unit]         
     30                          uint32_t           * nb_inst_retire                     ,//[nb_rename_unit]
     31                          uint32_t             nb_inst_commit                     ,                           
     32                          uint32_t             nb_inst_reexecute                  ,                           
     33                          uint32_t             nb_inst_branch_complete            ,                           
     34                          uint32_t          ** nb_branch_speculated               ,//[nb_front_end][nb_context]
    3535                          uint32_t             size_nb_inst_decod                 ,
    3636                          uint32_t             size_general_data                  ,
     
    3939                          uint32_t             size_general_register              ,
    4040                          uint32_t             size_special_register              ,
     41                          Trat_scheme_t      * rat_scheme                         ,//[nb_front_end]
    4142                          Tpriority_t          priority                           ,
    4243                          Tload_balancing_t    load_balancing                     ,
    4344                          uint32_t             nb_rename_unit_select              ,
    4445                          uint32_t             nb_thread                          ,
    45                           uint32_t          ** translate_num_context_to_num_thread,
     46                          uint32_t          ** translate_num_context_to_num_thread,//[nb_front_end][nb_context]
    4647                          bool                 is_toplevel):
    4748    _nb_bank_access_commit (1              )
     
    6162    _nb_inst_branch_complete             = nb_inst_branch_complete            ;
    6263    _nb_branch_speculated                = nb_branch_speculated               ;
     64    _rat_scheme                          = rat_scheme                         ;
    6365    _priority                            = priority                           ;
    6466    _load_balancing                      = load_balancing                     ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Parameters.h

    r88 r139  
    1111#include "Common/include/Debug.h"
    1212#include "Behavioural/include/Parameters.h"
     13#include "Behavioural/include/Types.h"
    1314
    1415namespace morpheo {
     
    2526  {
    2627    //-----[ fields ]------------------------------------------------------------
    27   public : uint32_t   _nb_front_end          ;
    28   public : uint32_t * _nb_context            ;//[nb_front_end]
    29   public : uint32_t   _nb_general_register   ;
    30   public : uint32_t   _nb_special_register   ;
    31   public : uint32_t   _nb_inst_insert        ;
    32   public : uint32_t   _nb_inst_retire        ;   
    33                      
    34 //public : uint32_t   _size_front_end_id     ;
    35 //public : uint32_t   _size_context_id       ;
    36 //public : uint32_t   _size_general_register ;
    37 //public : uint32_t   _size_special_register ;
    38 //                   
    39 //public : uint32_t   _have_port_context_id  ;
    40 //public : uint32_t   _have_port_front_end_id;
     28  public : uint32_t         _nb_front_end          ;
     29  public : uint32_t       * _nb_context            ;//[nb_front_end]
     30  public : uint32_t         _nb_general_register   ;
     31  public : uint32_t         _nb_special_register   ;
     32  public : Trat_scheme_t    _rat_scheme            ;
     33  public : uint32_t         _nb_inst_insert        ;
     34  public : uint32_t         _nb_inst_retire        ;   
     35  public : uint32_t      ** _nb_branch_speculated  ;//[nb_front_end][nb_context]
     36   
     37  public : uint32_t         _max_nb_context        ;
     38//public : uint32_t         _size_front_end_id     ;
     39//public : uint32_t         _size_context_id       ;
     40//public : uint32_t         _size_general_register ;
     41//public : uint32_t         _size_special_register ;
     42//                         
     43//public : uint32_t         _have_port_context_id  ;
     44//public : uint32_t         _have_port_front_end_id;
    4145
    4246    //-----[ methods ]-----------------------------------------------------------
    43   public : Parameters  (uint32_t   nb_front_end       ,
    44                         uint32_t * nb_context         ,
    45                         uint32_t   nb_general_register,
    46                         uint32_t   nb_special_register,
    47                         uint32_t   nb_inst_insert     ,
    48                         uint32_t   nb_inst_retire     ,
    49                         bool       is_toplevel=false
     47  public : Parameters  (uint32_t         nb_front_end        ,
     48                        uint32_t       * nb_context          ,//[nb_front_end]
     49                        uint32_t         nb_general_register ,
     50                        uint32_t         nb_special_register ,
     51                        Trat_scheme_t    rat_scheme          ,
     52                        uint32_t         nb_inst_insert      ,
     53                        uint32_t         nb_inst_retire      ,
     54                        uint32_t      ** nb_branch_speculated,//[nb_front_end][nb_context]
     55                        bool             is_toplevel=false
    5056                        );
    5157//   public : Parameters  (Parameters & param) ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h

    r131 r139  
    6868  public    : SC_IN (Tcontext_t        )   **  in_RENAME_FRONT_END_ID      ;//[nb_inst_insert]
    6969  public    : SC_IN (Tcontext_t        )   **  in_RENAME_CONTEXT_ID        ;//[nb_inst_insert]
     70  public    : SC_IN (Tdepth_t          )   **  in_RENAME_DEPTH             ;//[nb_inst_insert]
     71  public    : SC_IN (Tcontrol_t        )   **  in_RENAME_SAVE_RAT          ;//[nb_inst_insert]
    7072  public    : SC_IN (Tgeneral_address_t)   **  in_RENAME_NUM_REG_RA_LOG    ;//[nb_inst_insert]
    7173  public    : SC_IN (Tgeneral_address_t)   **  in_RENAME_NUM_REG_RB_LOG    ;//[nb_inst_insert]
     
    102104  public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RD_PHY_NEW;//[nb_inst_retire]
    103105  public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire]
    104   public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire]
    105   public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire]
    106   public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_RESTORE           ;//[nb_inst_retire]
     106  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_RESTORE           ;//[nb_inst_retire]
    107107
    108108    // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    110110  public    : SC_OUT(Tcontrol_t        )  *** out_RETIRE_EVENT_ACK            ;//[nb_front_end][nb_context]
    111111  public    : SC_IN (Tevent_state_t    )  ***  in_RETIRE_EVENT_STATE          ;//[nb_front_end][nb_context]
     112  public    : SC_IN (Tevent_type_t     )  ***  in_RETIRE_EVENT_TYPE           ;//[nb_front_end][nb_context]
     113  public    : SC_IN (Tdepth_t          )  ***  in_RETIRE_EVENT_DEPTH          ;//[nb_front_end][nb_context]
    112114
    113115    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    114116
    115117    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    116   private   : Tgeneral_address_t          *** rat_gpr_not_speculative;      //[nb_front_end][nb_context][nb_general_register_logic]
    117   private   : Tgeneral_address_t          *** rat_gpr_speculative;          //[nb_front_end][nb_context][nb_general_register_logic]
    118   private   : bool                        *** rat_gpr_speculative_valid;    //[nb_front_end][nb_context][nb_general_register_logic]
    119   private   : bool                        *** rat_gpr_update_table;         //[nb_front_end][nb_context][nb_general_register_logic]
    120 
    121   private   : Tspecial_address_t          *** rat_spr_not_speculative;      //[nb_front_end][nb_context][nb_special_register_logic]
    122   private   : Tspecial_address_t          *** rat_spr_speculative;          //[nb_front_end][nb_context][nb_special_register_logic]
    123   private   : bool                        *** rat_spr_speculative_valid;    //[nb_front_end][nb_context][nb_special_register_logic]
    124   private   : bool                        *** rat_spr_update_table;         //[nb_front_end][nb_context][nb_special_register_logic]
     118  private   : Tgeneral_address_t          *** rat_gpr_not_speculative;      //[nb_front_end][nb_context]                      [nb_general_register_logic]
     119  private   : Tgeneral_address_t          *** rat_gpr_speculative;          //[nb_front_end][nb_context]                      [nb_general_register_logic]
     120  private   : bool                        *** rat_gpr_speculative_valid;    //[nb_front_end][nb_context]                      [nb_general_register_logic]
     121  private   : Tgeneral_address_t         **** rat_gpr_save;                 //[nb_front_end][nb_context][nb_branch_speculated][nb_general_register_logic]
     122
     123  private   : Tspecial_address_t          *** rat_spr_not_speculative;      //[nb_front_end][nb_context]                      [nb_special_register_logic]
     124  private   : Tspecial_address_t          *** rat_spr_speculative;          //[nb_front_end][nb_context]                      [nb_special_register_logic]
     125  private   : bool                        *** rat_spr_speculative_valid;    //[nb_front_end][nb_context]                      [nb_special_register_logic]
     126  private   : Tspecial_address_t         **** rat_spr_save;                 //[nb_front_end][nb_context][nb_branch_speculated][nb_special_register_logic]
     127
     128  private   : Tdepth_t                     ** rat_depth;                    //[nb_front_end][nb_context]
    125129
    126130    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    127131  private   : Tcontrol_t                    * internal_RENAME_ACK;          //[nb_inst_insert]
     132  private   : Tcontrol_t                    * internal_RENAME_SAVE;         //[nb_inst_insert]
    128133  private   : Tcontrol_t                    * internal_INSERT_ACK;          //[nb_inst_insert]
    129134  private   : Tcontrol_t                    * internal_RETIRE_ACK;          //[nb_inst_retire]
    130135  private   : Tcontrol_t                   ** internal_RETIRE_EVENT_ACK    ;//[nb_front_end][nb_context]
    131136
    132   private   : bool                        *** internal_rat_gpr_update_table;//[nb_front_end][nb_context][nb_general_register_logic]
    133   private   : bool                        *** internal_rat_spr_update_table;//[nb_front_end][nb_context][nb_special_register_logic]
    134 
    135   private   : Tcontrol_t                    * internal_RETIRE_RESTORE           ;//[nb_inst_retire]
    136   private   : Tcontrol_t                    * internal_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire]
    137   private   : Tcontrol_t                    * internal_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire]
    138 
     137    // function pointer
     138  public    : void (morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::*function_constant       ) (void);
     139  public    : void (morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::*function_transition     ) (void);
     140  public    : void (morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::*function_genMealy_rename) (void);
    139141#endif
    140142
     
    169171                                               
    170172#ifdef SYSTEMC                                 
    171   public  : void        constant                  (void);
    172   public  : void        transition                (void);
    173   public  : void        genMealy_rename           (void);
    174   public  : void        genMealy_retire           (void);
     173  public  : void        constant                            (void);
     174  public  : void        transition                          (void);
     175  public  : void        genMealy_rename                     (void);
     176
     177  // public  : void        function_no_save_constant           (void);
     178  // public  : void        function_no_save_transition         (void);
     179  // public  : void        function_no_save_genMealy_rename    (void);
     180
     181  public  : void        function_one_save_constant          (void);
     182  public  : void        function_one_save_transition        (void);
     183  public  : void        function_one_save_genMealy_rename   (void);
     184
     185  public  : void        function_depth_save_constant        (void);
     186  public  : void        function_depth_save_transition      (void);
     187  public  : void        function_depth_save_genMealy_rename (void);
    175188#endif                                         
    176189
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Parameters.cpp

    r88 r139  
    2020#undef  FUNCTION
    2121#define FUNCTION "Register_Address_Translation_unit::Parameters"
    22   Parameters::Parameters (uint32_t   nb_front_end       ,
    23                           uint32_t * nb_context         ,
    24                           uint32_t   nb_general_register,
    25                           uint32_t   nb_special_register,
    26                           uint32_t   nb_inst_insert     ,
    27                           uint32_t   nb_inst_retire     ,
    28                           bool       is_toplevel)
     22  Parameters::Parameters (uint32_t         nb_front_end        ,
     23                          uint32_t       * nb_context          ,//[nb_front_end]
     24                          uint32_t         nb_general_register ,
     25                          uint32_t         nb_special_register ,
     26                          Trat_scheme_t    rat_scheme          ,
     27                          uint32_t         nb_inst_insert      ,
     28                          uint32_t         nb_inst_retire      ,
     29                          uint32_t      ** nb_branch_speculated,//[nb_front_end][nb_context]
     30                          bool             is_toplevel)
    2931  {
    3032    log_printf(FUNC,Register_Address_Translation_unit,FUNCTION,"Begin");
    3133
    32     _nb_front_end           = nb_front_end       ;
    33     _nb_context             = nb_context         ;
    34     _nb_general_register    = nb_general_register;
    35     _nb_special_register    = nb_special_register;
    36     _nb_inst_insert         = nb_inst_insert     ;
    37     _nb_inst_retire         = nb_inst_retire     ;
     34    _nb_front_end           = nb_front_end        ;
     35    _nb_context             = nb_context          ;
     36    _nb_general_register    = nb_general_register ;
     37    _nb_special_register    = nb_special_register ;
     38    _rat_scheme             = rat_scheme          ;
     39    _nb_inst_insert         = nb_inst_insert      ;
     40    _nb_inst_retire         = nb_inst_retire      ;
     41    _nb_branch_speculated   = nb_branch_speculated;
     42
     43    _max_nb_context         = max<uint32_t>(_nb_context, _nb_front_end);
    3844
    3945    test();
     
    4147    if (is_toplevel)
    4248      {
    43         _size_front_end_id      = log2(nb_front_end       );
    44         _size_context_id        = log2(max<uint32_t>(nb_context, nb_front_end));
    45         _size_general_register  = log2(nb_general_register);
    46         _size_special_register  = log2(nb_special_register);
     49        _size_front_end_id      = log2(_nb_front_end       );
     50        _size_context_id        = log2(_max_nb_context     );
     51        _size_general_register  = log2(_nb_general_register);
     52        _size_special_register  = log2(_nb_special_register);
     53        _size_depth             = log2(max<uint32_t>(_nb_branch_speculated,_nb_front_end,_nb_context));
    4754   
    4855        _have_port_front_end_id = _size_front_end_id>0;
    4956        _have_port_context_id   = _size_context_id  >0;
    50        
     57        _have_port_depth        = _size_depth       >0;
     58
    5159        copy();
    5260      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Parameters_msg_error.cpp

    r82 r139  
    1010#include <sstream>
    1111
    12 namespace morpheo                    {
     12namespace morpheo {
    1313namespace behavioural {
    1414namespace core {
     
    2727    Parameters_test test ("Register_Address_Translation_unit");
    2828
     29    switch(_rat_scheme)
     30      {
     31      case RAT_NO_SAVE    :
     32        {
     33          test.error(toString(_("The Register Address Translation scheme \"%s\" is not yet implemented.\n"),toString(_rat_scheme).c_str()));
     34        }
     35      default             :
     36      // case RAT_ONE_SAVE   :
     37      // case RAT_DEPTH_SAVE :
     38        {
     39          break;
     40        }
     41      }
     42
    2943    return test;
    3044
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Parameters_print.cpp

    r81 r139  
    2828
    2929    xml.balise_open("register_address_translation_unit");
    30     xml.singleton_begin("nb_front_end       "); xml.attribut("value",toString(_nb_front_end       )); xml.singleton_end();
    31     xml.singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end();
    32     xml.singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end();
    33     xml.singleton_begin("nb_inst_insert     "); xml.attribut("value",toString(_nb_inst_insert     )); xml.singleton_end();
    34     xml.singleton_begin("nb_inst_retire     "); xml.attribut("value",toString(_nb_inst_retire     )); xml.singleton_end();
     30    xml.singleton_begin("nb_front_end        "); xml.attribut("value",toString(_nb_front_end       )); xml.singleton_end();
     31    xml.singleton_begin("rat_scheme          "); xml.attribut("value",toString(_rat_scheme         )); xml.singleton_end();
     32    xml.singleton_begin("nb_general_register "); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end();
     33    xml.singleton_begin("nb_special_register "); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end();
     34    xml.singleton_begin("nb_inst_insert      "); xml.attribut("value",toString(_nb_inst_insert     )); xml.singleton_end();
     35    xml.singleton_begin("nb_inst_retire      "); xml.attribut("value",toString(_nb_inst_retire     )); xml.singleton_end();
    3536
    3637    for (uint32_t i=0;i<_nb_front_end; i++)
     
    4041        xml.  attribut("id"  ,toString(i));
    4142        xml. balise_open_end();
    42         xml.  singleton_begin("nb_context         "); xml.attribut("value",toString(_nb_context [i]     )); xml.singleton_end();
     43        xml.  singleton_begin("nb_context          "); xml.attribut("value",toString(_nb_context [i]     )); xml.singleton_end();
     44
     45        for (uint32_t j=0;j<_nb_context[i]; j++)
     46          {
     47            xml. balise_open_begin("component");
     48            xml.  attribut("type","context");
     49            xml.  attribut("id"  ,toString(j));
     50            xml. balise_open_end();
     51            xml.  singleton_begin("nb_branch_speculated"); xml.attribut("value",toString(_nb_branch_speculated[i][j])); xml.singleton_end();
     52            xml. balise_close();
     53          }
     54
    4355        xml. balise_close();
    4456      }
  • 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

    r132 r139  
    7575    if (usage_is_set(_usage,USE_SYSTEMC))
    7676      {
     77        // Function pointer
     78        switch (_param->_rat_scheme)
     79          {
     80          case RAT_NO_SAVE    :
     81            {
     82              // function_constant        = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_no_save_constant       ;
     83              // function_transition      = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_no_save_transition     ;
     84              // function_genMealy_rename = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_no_save_genMealy_rename;
     85
     86              break;
     87            }
     88
     89          case RAT_ONE_SAVE   :
     90            {
     91              function_constant        = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_one_save_constant       ;
     92              function_transition      = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_one_save_transition     ;
     93              function_genMealy_rename = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_one_save_genMealy_rename;
     94
     95              break;
     96            }
     97
     98          case RAT_DEPTH_SAVE :
     99            {
     100              function_constant        = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_depth_save_constant       ;
     101              function_transition      = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_depth_save_transition     ;
     102              function_genMealy_rename = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_depth_save_genMealy_rename;
     103
     104              break;
     105            }
     106
     107          default             :
     108            {
     109              break;
     110            }
     111          }
     112
    77113#ifdef SYSTEMCASS_SPECIFIC
    78114        constant();
     
    118154                      << (*(in_RENAME_NUM_REG_RD_LOG [i]))
    119155                      << (*(in_RENAME_NUM_REG_RE_LOG [i]));
     156
     157            if (_param->_rat_scheme == RAT_DEPTH_SAVE)
     158            sensitive << (*(in_RENAME_SAVE_RAT       [i]));
    120159          }
    121160        for (uint32_t i=0; i<_param->_nb_front_end; ++i)
     
    124163                      << (*(in_RETIRE_EVENT_STATE [i][j]));
    125164
    126 # ifdef SYSTEMCASS_SPECIFIC
    127         // List dependency information
    128 # endif   
    129 
    130         log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - genMealy_retire");
    131 
    132         SC_METHOD (genMealy_retire);
    133         dont_initialize ();
    134         sensitive << (*(in_CLOCK)).neg() // need internal register
    135                   << (*(in_NRESET));
    136 
    137         for (uint32_t i=0; i<_param->_nb_inst_retire; ++i)
    138           {
    139             if (param->_have_port_front_end_id)
    140             sensitive << (*(in_RETIRE_FRONT_END_ID   [i]));
    141             if (param->_have_port_context_id)
    142             sensitive << (*(in_RETIRE_CONTEXT_ID     [i]));
    143            
    144             sensitive << (*(in_RETIRE_WRITE_RD       [i]))
    145                       << (*(in_RETIRE_WRITE_RE       [i]))
    146                       << (*(in_RETIRE_NUM_REG_RD_LOG [i]))
    147                       << (*(in_RETIRE_NUM_REG_RE_LOG [i]));
    148           }
    149 
    150         for (uint32_t i=0; i<_param->_nb_front_end; ++i)
    151           for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
    152             sensitive << (*(in_RETIRE_EVENT_VAL   [i][j]))
    153                       << (*(in_RETIRE_EVENT_STATE [i][j]));
    154        
    155165# ifdef SYSTEMCASS_SPECIFIC
    156166        // List dependency information
  • 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_allocation.cpp

    r122 r139  
    6161      ALLOC1_INTERFACE_BEGIN("rename",IN,EAST,_("Input to rename source logical register"), _param->_nb_inst_insert);
    6262
    63       ALLOC1_VALACK_IN ( in_RENAME_VAL               , VAL);
    64       ALLOC1_VALACK_OUT(out_RENAME_ACK               , ACK);
    65       ALLOC1_SIGNAL_IN ( in_RENAME_FRONT_END_ID      ,"front_end_id"      ,Tcontext_t        ,_param->_size_front_end_id);
    66       ALLOC1_SIGNAL_IN ( in_RENAME_CONTEXT_ID        ,"context_id"        ,Tcontext_t        ,_param->_size_context_id  );
    67       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RA_LOG    ,"num_reg_ra_log"    ,Tgeneral_address_t,_param->_size_general_register_logic);
    68       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RB_LOG    ,"num_reg_rb_log"    ,Tgeneral_address_t,_param->_size_general_register_logic);
    69       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RC_LOG    ,"num_reg_rc_log"    ,Tspecial_address_t,_param->_size_special_register_logic);
    70       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RD_LOG    ,"num_reg_rd_log"    ,Tgeneral_address_t,_param->_size_general_register_logic);
    71       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RE_LOG    ,"num_reg_re_log"    ,Tspecial_address_t,_param->_size_special_register_logic);
    72       ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RA_PHY    ,"num_reg_ra_phy"    ,Tgeneral_address_t,_param->_size_general_register);
    73       ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RB_PHY    ,"num_reg_rb_phy"    ,Tgeneral_address_t,_param->_size_general_register);
    74       ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RC_PHY    ,"num_reg_rc_phy"    ,Tspecial_address_t,_param->_size_special_register);
    75       ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RD_PHY_OLD,"num_reg_rd_phy_old",Tgeneral_address_t,_param->_size_general_register);
    76       ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register);
     63      ALLOC1_VALACK_IN      ( in_RENAME_VAL               , VAL);
     64      ALLOC1_VALACK_OUT     (out_RENAME_ACK               , ACK);
     65      ALLOC1_SIGNAL_IN      ( in_RENAME_FRONT_END_ID      ,"front_end_id"      ,Tcontext_t        ,_param->_size_front_end_id);
     66      ALLOC1_SIGNAL_IN      ( in_RENAME_CONTEXT_ID        ,"context_id"        ,Tcontext_t        ,_param->_size_context_id  );
     67      ALLOC1_SIGNAL_IN_COND ( in_RENAME_DEPTH             ,"depth"             ,Tdepth_t          ,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     68      ALLOC1_SIGNAL_IN      ( in_RENAME_SAVE_RAT          ,"save_rat"          ,Tcontrol_t        ,1);
     69      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RA_LOG    ,"num_reg_ra_log"    ,Tgeneral_address_t,_param->_size_general_register_logic);
     70      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RB_LOG    ,"num_reg_rb_log"    ,Tgeneral_address_t,_param->_size_general_register_logic);
     71      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RC_LOG    ,"num_reg_rc_log"    ,Tspecial_address_t,_param->_size_special_register_logic);
     72      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RD_LOG    ,"num_reg_rd_log"    ,Tgeneral_address_t,_param->_size_general_register_logic);
     73      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RE_LOG    ,"num_reg_re_log"    ,Tspecial_address_t,_param->_size_special_register_logic);
     74      ALLOC1_SIGNAL_OUT     (out_RENAME_NUM_REG_RA_PHY    ,"num_reg_ra_phy"    ,Tgeneral_address_t,_param->_size_general_register);
     75      ALLOC1_SIGNAL_OUT     (out_RENAME_NUM_REG_RB_PHY    ,"num_reg_rb_phy"    ,Tgeneral_address_t,_param->_size_general_register);
     76      ALLOC1_SIGNAL_OUT     (out_RENAME_NUM_REG_RC_PHY    ,"num_reg_rc_phy"    ,Tspecial_address_t,_param->_size_special_register);
     77      ALLOC1_SIGNAL_OUT     (out_RENAME_NUM_REG_RD_PHY_OLD,"num_reg_rd_phy_old",Tgeneral_address_t,_param->_size_general_register);
     78      ALLOC1_SIGNAL_OUT     (out_RENAME_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register);
    7779
    7880      ALLOC1_INTERFACE_END(_param->_nb_inst_insert);
     
    111113      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RD_PHY_NEW,"num_reg_rd_phy_new",Tgeneral_address_t,_param->_size_general_register);
    112114      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register);
    113       ALLOC1_SIGNAL_OUT(out_RETIRE_RESTORE_RD_PHY_OLD,"restore_rd_phy_old",Tcontrol_t        ,1);
    114       ALLOC1_SIGNAL_OUT(out_RETIRE_RESTORE_RE_PHY_OLD,"restore_re_phy_old",Tcontrol_t        ,1);
    115       ALLOC1_SIGNAL_OUT(out_RETIRE_RESTORE           ,"restore"           ,Tcontrol_t        ,1);
     115      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE           ,"restore"           ,Tcontrol_t        ,1);
    116116
    117117      ALLOC1_INTERFACE_END(_param->_nb_inst_retire);
     
    122122      ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]);
    123123
    124       _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL        ,VAL,_param->_nb_front_end, _param->_nb_context[it1]);
    125       _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK        ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
    126       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE      ,"state"             ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
     124      _ALLOC2_VALACK_IN      ( in_RETIRE_EVENT_VAL        ,VAL,_param->_nb_front_end, _param->_nb_context[it1]);
     125      _ALLOC2_VALACK_OUT     (out_RETIRE_EVENT_ACK        ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
     126      _ALLOC2_SIGNAL_IN      ( in_RETIRE_EVENT_STATE      ,"state"             ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
     127      _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_TYPE       ,"type"              ,Tevent_type_t     ,_param->_size_event_type , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE);
     128      _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_DEPTH      ,"depth"             ,Tdepth_t          ,_param->_size_depth      , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE);
    127129
    128130      ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]);
     
    132134      {
    133135    ALLOC1(internal_RENAME_ACK       ,Tcontrol_t,_param->_nb_inst_insert);
     136    ALLOC1(internal_RENAME_SAVE      ,Tcontrol_t,_param->_nb_inst_insert);
    134137    ALLOC1(internal_INSERT_ACK       ,Tcontrol_t,_param->_nb_inst_insert);
    135138    ALLOC1(internal_RETIRE_ACK       ,Tcontrol_t,_param->_nb_inst_retire);
    136139    ALLOC2(internal_RETIRE_EVENT_ACK ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
    137140
    138     ALLOC3(rat_gpr_not_speculative  ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    139141    ALLOC3(rat_gpr_speculative      ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    140     ALLOC3(rat_gpr_speculative_valid,bool              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    141     ALLOC3(rat_gpr_update_table     ,bool              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     142    ALLOC3(rat_spr_speculative      ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     143
     144    switch(_param->_rat_scheme)
     145      {
     146      case RAT_NO_SAVE    :
     147        {
     148          break;
     149        }
     150      case RAT_ONE_SAVE   :
     151        {
     152          ALLOC3(rat_gpr_not_speculative  ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     153          ALLOC3(rat_gpr_speculative_valid,bool              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     154
     155          ALLOC3(rat_spr_not_speculative  ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     156          ALLOC3(rat_spr_speculative_valid,bool              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     157         
     158          break;
     159        }
     160      case RAT_DEPTH_SAVE :
     161        {
     162          ALLOC4(rat_gpr_save             ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_general_register_logic);
     163          ALLOC4(rat_spr_save             ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_special_register_logic);
     164          ALLOC2(rat_depth                ,Tdepth_t          ,_param->_nb_front_end,_param->_nb_context[it1]);
    142165   
    143     ALLOC3(rat_spr_not_speculative  ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    144     ALLOC3(rat_spr_speculative      ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    145     ALLOC3(rat_spr_speculative_valid,bool              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    146     ALLOC3(rat_spr_update_table     ,bool              ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    147 
    148     ALLOC3(internal_rat_gpr_update_table,bool, _param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    149     ALLOC3(internal_rat_spr_update_table,bool, _param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    150 
    151     ALLOC1(internal_RETIRE_RESTORE           ,Tcontrol_t,_param->_nb_inst_retire);
    152     ALLOC1(internal_RETIRE_RESTORE_RD_PHY_OLD,Tcontrol_t,_param->_nb_inst_retire);
    153     ALLOC1(internal_RETIRE_RESTORE_RE_PHY_OLD,Tcontrol_t,_param->_nb_inst_retire);
     166          break;
     167        }
     168      }
    154169      }
    155170
  • 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_constant.cpp

    r131 r139  
    2626    log_function(Register_Address_Translation_unit,FUNCTION,_name.c_str());
    2727
    28         // Constant : accepted already transaction
    29         for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    30           {
    31             internal_RENAME_ACK [i] = 1;
    32             internal_INSERT_ACK [i] = 1;
    33 
    34             PORT_WRITE(out_RENAME_ACK[i],internal_RENAME_ACK [i]);
    35             PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]);
    36           }
    37 
    38         for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
    39           {
    40             internal_RETIRE_ACK [i] = 1;
    41 
    42             PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]);
    43           }
    44 
    45         for (uint32_t i=0; i<_param->_nb_front_end; ++i)
    46           for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
    47             {
    48               internal_RETIRE_EVENT_ACK [i][j] = 1;
    49              
    50               PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
    51             }
     28    (this->*function_constant) ();
    5229
    5330    log_end(Register_Address_Translation_unit,FUNCTION);
  • 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_deallocation.cpp

    r122 r139  
    3030        delete     in_NRESET;
    3131
    32         DELETE1_SIGNAL( in_RENAME_VAL               ,_param->_nb_inst_insert,1);
    33         DELETE1_SIGNAL(out_RENAME_ACK               ,_param->_nb_inst_insert,1);
    34         DELETE1_SIGNAL( in_RENAME_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id);
    35         DELETE1_SIGNAL( in_RENAME_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id  );
    36         DELETE1_SIGNAL( in_RENAME_NUM_REG_RA_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    37         DELETE1_SIGNAL( in_RENAME_NUM_REG_RB_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    38         DELETE1_SIGNAL( in_RENAME_NUM_REG_RC_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
    39         DELETE1_SIGNAL( in_RENAME_NUM_REG_RD_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    40         DELETE1_SIGNAL( in_RENAME_NUM_REG_RE_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
    41         DELETE1_SIGNAL(out_RENAME_NUM_REG_RA_PHY    ,_param->_nb_inst_insert,_param->_size_general_register);
    42         DELETE1_SIGNAL(out_RENAME_NUM_REG_RB_PHY    ,_param->_nb_inst_insert,_param->_size_general_register);
    43         DELETE1_SIGNAL(out_RENAME_NUM_REG_RC_PHY    ,_param->_nb_inst_insert,_param->_size_special_register);
    44         DELETE1_SIGNAL(out_RENAME_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register);
    45         DELETE1_SIGNAL(out_RENAME_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register);
    46 
    47         DELETE1_SIGNAL( in_INSERT_VAL           ,_param->_nb_inst_insert,1);
    48         DELETE1_SIGNAL(out_INSERT_ACK           ,_param->_nb_inst_insert,1);
    49 //      DELETE1_SIGNAL( in_INSERT_FRONT_END_ID  ,_param->_nb_inst_insert,_param->_size_front_end_id);
    50 //      DELETE1_SIGNAL( in_INSERT_CONTEXT_ID    ,_param->_nb_inst_insert,_param->_size_context_id  );
    51         DELETE1_SIGNAL( in_INSERT_WRITE_RD      ,_param->_nb_inst_insert,1);
    52         DELETE1_SIGNAL( in_INSERT_WRITE_RE      ,_param->_nb_inst_insert,1);
    53         DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
    54         DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic);
    55         DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_PHY,_param->_nb_inst_insert,_param->_size_general_register);
    56         DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_PHY,_param->_nb_inst_insert,_param->_size_special_register);
    57 
    58         DELETE1_SIGNAL( in_RETIRE_VAL               ,_param->_nb_inst_retire,1);
    59         DELETE1_SIGNAL(out_RETIRE_ACK               ,_param->_nb_inst_retire,1);
    60         DELETE1_SIGNAL( in_RETIRE_FRONT_END_ID      ,_param->_nb_inst_retire,_param->_size_front_end_id);
    61         DELETE1_SIGNAL( in_RETIRE_CONTEXT_ID        ,_param->_nb_inst_retire,_param->_size_context_id  );
    62         DELETE1_SIGNAL( in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire,1);
    63         DELETE1_SIGNAL( in_RETIRE_WRITE_RE          ,_param->_nb_inst_retire,1);
    64         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_LOG    ,_param->_nb_inst_retire,_param->_size_general_register_logic);
    65         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_LOG    ,_param->_nb_inst_retire,_param->_size_special_register_logic);
    66         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register);
    67         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register);
    68         DELETE1_SIGNAL(out_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire,1);
    69         DELETE1_SIGNAL(out_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire,1);
    70         DELETE1_SIGNAL(out_RETIRE_RESTORE           ,_param->_nb_inst_retire,1);
    71 
    72         DELETE2_SIGNAL( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    73         DELETE2_SIGNAL(out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    74         DELETE2_SIGNAL( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
     32        DELETE1_SIGNAL     ( in_RENAME_VAL               ,_param->_nb_inst_insert,1);
     33        DELETE1_SIGNAL     (out_RENAME_ACK               ,_param->_nb_inst_insert,1);
     34        DELETE1_SIGNAL     ( in_RENAME_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id);
     35        DELETE1_SIGNAL     ( in_RENAME_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id  );
     36        DELETE1_SIGNAL_COND( in_RENAME_DEPTH             ,_param->_nb_inst_insert,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     37        DELETE1_SIGNAL     ( in_RENAME_SAVE_RAT          ,_param->_nb_inst_insert,1);
     38        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RA_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     39        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RB_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     40        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RC_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
     41        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RD_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     42        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RE_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
     43        DELETE1_SIGNAL     (out_RENAME_NUM_REG_RA_PHY    ,_param->_nb_inst_insert,_param->_size_general_register);
     44        DELETE1_SIGNAL     (out_RENAME_NUM_REG_RB_PHY    ,_param->_nb_inst_insert,_param->_size_general_register);
     45        DELETE1_SIGNAL     (out_RENAME_NUM_REG_RC_PHY    ,_param->_nb_inst_insert,_param->_size_special_register);
     46        DELETE1_SIGNAL     (out_RENAME_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register);
     47        DELETE1_SIGNAL     (out_RENAME_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register);
     48                           
     49        DELETE1_SIGNAL     ( in_INSERT_VAL           ,_param->_nb_inst_insert,1);
     50        DELETE1_SIGNAL     (out_INSERT_ACK           ,_param->_nb_inst_insert,1);
     51//      DELETE1_SIGNAL     ( in_INSERT_FRONT_END_ID  ,_param->_nb_inst_insert,_param->_size_front_end_id);
     52//      DELETE1_SIGNAL     ( in_INSERT_CONTEXT_ID    ,_param->_nb_inst_insert,_param->_size_context_id  );
     53        DELETE1_SIGNAL     ( in_INSERT_WRITE_RD      ,_param->_nb_inst_insert,1);
     54        DELETE1_SIGNAL     ( in_INSERT_WRITE_RE      ,_param->_nb_inst_insert,1);
     55        DELETE1_SIGNAL     ( in_INSERT_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
     56        DELETE1_SIGNAL     ( in_INSERT_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic);
     57        DELETE1_SIGNAL     ( in_INSERT_NUM_REG_RD_PHY,_param->_nb_inst_insert,_param->_size_general_register);
     58        DELETE1_SIGNAL     ( in_INSERT_NUM_REG_RE_PHY,_param->_nb_inst_insert,_param->_size_special_register);
     59                           
     60        DELETE1_SIGNAL     ( in_RETIRE_VAL               ,_param->_nb_inst_retire,1);
     61        DELETE1_SIGNAL     (out_RETIRE_ACK               ,_param->_nb_inst_retire,1);
     62        DELETE1_SIGNAL     ( in_RETIRE_FRONT_END_ID      ,_param->_nb_inst_retire,_param->_size_front_end_id);
     63        DELETE1_SIGNAL     ( in_RETIRE_CONTEXT_ID        ,_param->_nb_inst_retire,_param->_size_context_id  );
     64        DELETE1_SIGNAL     ( in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire,1);
     65        DELETE1_SIGNAL     ( in_RETIRE_WRITE_RE          ,_param->_nb_inst_retire,1);
     66        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_LOG    ,_param->_nb_inst_retire,_param->_size_general_register_logic);
     67        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_LOG    ,_param->_nb_inst_retire,_param->_size_special_register_logic);
     68        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register);
     69        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register);
     70        DELETE1_SIGNAL     ( in_RETIRE_RESTORE           ,_param->_nb_inst_retire,1);
     71                           
     72        DELETE2_SIGNAL     ( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1],1);
     73        DELETE2_SIGNAL     (out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
     74        DELETE2_SIGNAL     ( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
     75        DELETE2_SIGNAL_COND( in_RETIRE_EVENT_TYPE           ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_type,_param->_rat_scheme == RAT_DEPTH_SAVE);
     76        DELETE2_SIGNAL_COND( in_RETIRE_EVENT_DEPTH          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_depth     ,_param->_rat_scheme == RAT_DEPTH_SAVE);
    7577
    7678        DELETE1(internal_RENAME_ACK                    ,_param->_nb_inst_insert);
     79        DELETE1(internal_RENAME_SAVE                   ,_param->_nb_inst_insert);
    7780        DELETE1(internal_INSERT_ACK                    ,_param->_nb_inst_insert);
    7881        DELETE1(internal_RETIRE_ACK                    ,_param->_nb_inst_retire);
    7982        DELETE2(internal_RETIRE_EVENT_ACK              ,_param->_nb_front_end,_param->_nb_context[it1]);
    8083
    81         DELETE3(rat_gpr_not_speculative      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    8284        DELETE3(rat_gpr_speculative          ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    83         DELETE3(rat_gpr_speculative_valid    ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    84         DELETE3(rat_gpr_update_table         ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     85        DELETE3(rat_spr_speculative          ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    8586
    86         DELETE3(rat_spr_not_speculative      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    87         DELETE3(rat_spr_speculative          ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    88         DELETE3(rat_spr_speculative_valid    ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    89         DELETE3(rat_spr_update_table         ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     87        switch(_param->_rat_scheme)
     88          {
     89          case RAT_NO_SAVE    :
     90            {
     91              break;
     92            }
     93          case RAT_ONE_SAVE   :
     94            {
     95              DELETE3(rat_gpr_not_speculative      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     96              DELETE3(rat_gpr_speculative_valid    ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
     97             
     98              DELETE3(rat_spr_not_speculative      ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     99              DELETE3(rat_spr_speculative_valid    ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
     100             
     101              break;
     102            }
     103          case RAT_DEPTH_SAVE :
     104            {
     105              DELETE4(rat_gpr_save                 ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_general_register_logic);
     106              DELETE4(rat_spr_save                 ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_special_register_logic);
     107              DELETE2(rat_depth                    ,_param->_nb_front_end,_param->_nb_context[it1]);
    90108
    91         DELETE3(internal_rat_gpr_update_table,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);
    92         DELETE3(internal_rat_spr_update_table,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic);
    93        
    94         DELETE1(internal_RETIRE_RESTORE           ,_param->_nb_inst_retire);
    95         DELETE1(internal_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire);
    96         DELETE1(internal_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire);
     109              break;
     110            }
     111          }
    97112      }
    98113
  • 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_function_one_save_genMealy_rename.cpp

    r137 r139  
    2020
    2121#undef  FUNCTION
    22 #define FUNCTION "Register_Address_Translation_unit::genMealy_rename"
    23   void Register_Address_Translation_unit::genMealy_rename (void)
     22#define FUNCTION "Register_Address_Translation_unit::function_one_save_genMealy_rename"
     23  void Register_Address_Translation_unit::function_one_save_genMealy_rename (void)
    2424  {
    2525    log_begin(Register_Address_Translation_unit,FUNCTION);
  • 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_function_one_save_transition.cpp

    r137 r139  
    2020
    2121#undef  FUNCTION
    22 #define FUNCTION "Register_Address_Translation_unit::transition"
    23   void Register_Address_Translation_unit::transition (void)
     22#define FUNCTION "Register_Address_Translation_unit::function_one_save_transition"
     23  void Register_Address_Translation_unit::function_one_save_transition (void)
    2424  {
    2525    log_begin(Register_Address_Translation_unit,FUNCTION);
     
    3737              rat_gpr_speculative_valid [i][j][0] = false;
    3838              rat_gpr_speculative       [i][j][0] = 0    ; // not necessary
    39               rat_gpr_update_table      [i][j][0] = false; // not necessary
    4039
    4140              for (uint32_t k=1; k<_param->_nb_general_register_logic; k++)
     
    4443                  rat_gpr_speculative_valid  [i][j][k] = false;
    4544                  rat_gpr_speculative        [i][j][k] = 0    ; // not necessary
    46                   rat_gpr_update_table       [i][j][k] = false; // not necessary
    4745                }
    4846              for (uint32_t k=0; k<_param->_nb_special_register_logic; k++)
     
    5149                  rat_spr_speculative_valid  [i][j][k] = false;
    5250                  rat_spr_speculative        [i][j][k] = 0    ; // not necessary
    53                   rat_spr_update_table       [i][j][k] = false; // not necessary
    5451                }
    5552            }
     
    7067                  log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * Reset Update Table");
    7168                 
    72                   // Reset update_table and validity table
     69                  // Reset validity table
    7370                  for (uint32_t k=0; k<_param->_nb_general_register_logic; k++)
    74                     {
    75                       rat_gpr_update_table      [i][j][k] = false;
    76                       rat_gpr_speculative_valid [i][j][k] = false;
    77                     }
     71                    rat_gpr_speculative_valid [i][j][k] = false;
    7872                  for (uint32_t k=0; k<_param->_nb_special_register_logic; k++)
    79                     {
    80                       rat_spr_update_table      [i][j][k] = false;
    81                       rat_spr_speculative_valid [i][j][k] = false;
    82                     }
     73                    rat_spr_speculative_valid [i][j][k] = false;
    8374                }
    8475
     
    149140              Tcontrol_t write_rd     = PORT_READ(in_RETIRE_WRITE_RD [i]);
    150141              Tcontrol_t write_re     = PORT_READ(in_RETIRE_WRITE_RE [i]);
    151               Tcontrol_t restore      = internal_RETIRE_RESTORE [i];
     142              Tcontrol_t restore      = PORT_READ(in_RETIRE_RESTORE  [i]);
    152143
    153144              log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * front_end_id       : %d",front_end_id);
     
    157148              // Test if write and have not a previous update
    158149              log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * write_rd           : %d",write_rd);
    159               if (PORT_READ(in_RETIRE_WRITE_RD [i]) == 1)
     150              if (write_rd == 1)
    160151                {
    161152                  Tgeneral_address_t num_reg_rd_log     = PORT_READ(in_RETIRE_NUM_REG_RD_LOG     [i]);
     
    171162                  rat_gpr_not_speculative [front_end_id][context_id][num_reg_rd_log] = num_reg_rd_phy_new;
    172163                    }
    173 
    174                   Tcontrol_t         restore_rd         = internal_RETIRE_RESTORE_RD_PHY_OLD [i];
    175                   log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * restore_rd         : %d",restore_rd        );
    176                      
    177                   if (restore_rd)
    178                   rat_gpr_update_table    [front_end_id][context_id][num_reg_rd_log] = true;
    179164                }
    180165
    181166              log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * write_re           : %d",write_re);
    182               if (PORT_READ(in_RETIRE_WRITE_RE [i]) == 1)
     167              if (write_re == 1)
    183168                {
    184169                  Tspecial_address_t num_reg_re_log     = PORT_READ(in_RETIRE_NUM_REG_RE_LOG     [i]);
     
    194179                  rat_spr_not_speculative [front_end_id][context_id][num_reg_re_log] = num_reg_re_phy_new;
    195180                    }
    196 
    197                   Tcontrol_t         restore_re         = internal_RETIRE_RESTORE_RE_PHY_OLD [i];
    198                   log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"    * restore_re         : %d",restore_re        );
    199                      
    200                   if (restore_re)
    201                   rat_spr_update_table    [front_end_id][context_id][num_reg_re_log] = true;
    202181                }
    203182
     
    224203                      break;
    225204                    else
    226                       str+=toString("GPR[%.4d] - %.1d %.5d (%.5d) %.1d | ",index,rat_gpr_speculative_valid [i][j][index],rat_gpr_speculative [i][j][index],rat_gpr_not_speculative [i][j][index],rat_gpr_update_table[i][j][index]);
     205                      str+=toString("GPR[%.4d] - %.1d %.5d (%.5d) | ",index,rat_gpr_speculative_valid [i][j][index],rat_gpr_speculative [i][j][index],rat_gpr_not_speculative [i][j][index]);
    227206                  }
    228207                log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"      * %s",str.c_str());
     
    239218                      break;
    240219                    else
    241                       str+=toString("SPR[%.4d] - %.1d %.5d (%.5d) %.1d | ",index,rat_spr_speculative_valid [i][j][index],rat_spr_speculative [i][j][index],rat_spr_not_speculative [i][j][index],rat_spr_update_table[i][j][index]);
     220                      str+=toString("SPR[%.4d] - %.1d %.5d (%.5d) | ",index,rat_spr_speculative_valid [i][j][index],rat_spr_speculative [i][j][index],rat_spr_not_speculative [i][j][index]);
    242221                  }
    243222                log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"      * %s",str.c_str());
     
    281260#endif
    282261
    283 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    284     end_cycle ();
    285 #endif
    286 
    287262    log_end(Register_Address_Translation_unit,FUNCTION);
    288263  };
  • 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

    r123 r139  
    9494          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);
    9595
    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));
     96          bool error_nb_gpr_free     = (free_list_nb_gpr_free != stat_list_nb_gpr_free);
     97          bool error_nb_spr_free     = (free_list_nb_spr_free != stat_list_nb_spr_free);
     98          bool error_rob_nb_gpr_free = (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free));
     99          bool error_rob_nb_spr_free = (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free));
     100
     101          std::string list_gpr_not_free;
     102          std::string list_spr_not_free;
     103
     104
     105          if (error_nb_gpr_free or
     106              error_rob_nb_gpr_free)
     107            for (uint32_t i=0; i<_param->_nb_bank; i++)
     108              for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
     109                if (not gpr_stat_list [i][j]._is_free)
     110                  list_gpr_not_free+=toString((i<<_param->_shift_gpr)|j)+" ";   
     111
     112          if (error_nb_spr_free or
     113              error_rob_nb_spr_free)
     114            for (uint32_t i=0; i<_param->_nb_bank; i++)
     115              for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
     116                if (not spr_stat_list [i][j]._is_free)
     117                  list_spr_not_free+=toString((i<<_param->_shift_spr)|j)+" ";   
     118
     119          if (error_nb_gpr_free)
     120            throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list. (GPR not free : %s)\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free,list_gpr_not_free.c_str()));
     121          if (error_nb_spr_free)
     122            throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list. (SPR not free : %s)\n"),stat_list_nb_spr_free,free_list_nb_spr_free,list_spr_not_free.c_str()));
     123          if (error_rob_nb_gpr_free)
     124            throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers. (GPR not free : %s)"),nb_gpr_free,_nb_gpr_free,list_gpr_not_free.c_str()));
     125
     126          if (error_rob_nb_spr_free)
     127            throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers. (SPR not free : %s)"),nb_spr_free,_nb_spr_free,list_gpr_not_free.c_str()));
    106128        }
    107129#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Parameters.h

    r112 r139  
    3030  {
    3131    //-----[ fields ]------------------------------------------------------------
    32   public : uint32_t   _nb_front_end          ;
    33   public : uint32_t * _nb_context            ;//[nb_front_end]
    34   public : uint32_t   _nb_general_register   ;
    35   public : uint32_t   _nb_special_register   ;
    36   public : uint32_t   _nb_inst_insert        ;
    37   public : uint32_t   _nb_inst_retire        ;
    38   public : uint32_t   _nb_reg_free           ;
    39   public : uint32_t   _nb_bank               ;
    40 //public : uint32_t   _size_read_counter     ;
    41 
    42 //public : uint32_t   _size_front_end_id     ;
    43 //public : uint32_t   _size_context_id       ;
    44 //public : uint32_t   _size_general_register ;
    45 //public : uint32_t   _size_special_register ;
    46                      
    47 //public : uint32_t   _have_port_context_id  ;
    48 //public : uint32_t   _have_port_front_end_id;
     32  public : uint32_t         _nb_front_end          ;
     33  public : uint32_t       * _nb_context            ;//[nb_front_end]
     34  public : uint32_t         _nb_general_register   ;
     35  public : uint32_t         _nb_special_register   ;
     36  public : Trat_scheme_t    _rat_scheme            ;
     37  public : uint32_t         _nb_inst_insert        ;
     38  public : uint32_t         _nb_inst_retire        ;
     39  public : uint32_t         _nb_reg_free           ;
     40  public : uint32_t         _nb_bank               ;
     41//public : uint32_t         _size_read_counter     ;
     42  public : uint32_t      ** _nb_branch_speculated  ;//[nb_front_end][nb_context]
     43                         
     44//public : uint32_t         _size_front_end_id     ;
     45//public : uint32_t         _size_context_id       ;
     46//public : uint32_t         _size_general_register ;
     47//public : uint32_t         _size_special_register ;
     48                           
     49//public : uint32_t         _have_port_context_id  ;
     50//public : uint32_t         _have_port_front_end_id;
    4951
    5052  public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::dependency_checking_unit::         Parameters * _param_dependency_checking_unit;
     
    5456  public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_translation_unit_glue::   Parameters * _param_register_translation_unit_glue;   
    5557    //-----[ methods ]-----------------------------------------------------------
    56   public : Parameters  (uint32_t   nb_front_end          ,
    57                         uint32_t * nb_context            ,
    58                         uint32_t   nb_general_register   ,
    59                         uint32_t   nb_special_register   ,
    60                         uint32_t   nb_inst_insert        ,
    61                         uint32_t   nb_inst_retire        ,
    62                         uint32_t   nb_reg_free           ,
    63                         uint32_t   nb_bank               ,
    64 //                      uint32_t   size_read_counter     ,
    65                         bool       is_toplevel=false);
     58  public : Parameters  (uint32_t         nb_front_end        ,
     59                        uint32_t       * nb_context          ,
     60                        uint32_t         nb_general_register ,
     61                        uint32_t         nb_special_register ,
     62                        Trat_scheme_t    rat_scheme          ,//[nb_front_end]
     63                        uint32_t         nb_inst_insert      ,
     64                        uint32_t         nb_inst_retire      ,
     65                        uint32_t         nb_reg_free         ,
     66                        uint32_t         nb_bank             ,
     67//                      uint32_t         size_read_counter   ,
     68                        uint32_t      ** nb_branch_speculated,//[nb_front_end][nb_context]
     69                        bool             is_toplevel=false);
    6670//   public : Parameters  (Parameters & param) ;
    6771  public : ~Parameters () ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h

    r137 r139  
    7272  public    : SC_IN (Tcontext_t        )   **  in_RENAME_FRONT_END_ID      ;//[nb_inst_insert]
    7373  public    : SC_IN (Tcontext_t        )   **  in_RENAME_CONTEXT_ID        ;//[nb_inst_insert]
     74  public    : SC_IN (Tdepth_t          )   **  in_RENAME_DEPTH             ;//[nb_inst_insert]
     75  public    : SC_IN (Tcontrol_t        )   **  in_RENAME_SAVE_RAT          ;//[nb_inst_insert]
    7476  public    : SC_IN (Tcontrol_t        )   **  in_RENAME_READ_RA           ;//[nb_inst_insert]
    7577  public    : SC_IN (Tgeneral_address_t)   **  in_RENAME_NUM_REG_RA_LOG    ;//[nb_inst_insert]
     
    117119  public    : SC_IN (Tcontext_t        )   **  in_RETIRE_FRONT_END_ID      ;//[nb_inst_retire]
    118120  public    : SC_IN (Tcontext_t        )   **  in_RETIRE_CONTEXT_ID        ;//[nb_inst_retire]
    119 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
    120 //   public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
    121 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
    122 //   public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
    123 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
    124 //   public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
     121//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
     122//public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
     123//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
     124//public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
     125//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
     126//public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
    125127  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_WRITE_RD          ;//[nb_inst_retire]
    126128  public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RD_LOG    ;//[nb_inst_retire]
     
    131133  public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RE_PHY_OLD;//[nb_inst_retire]
    132134  public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire]
     135  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_RESTORE           ;//[nb_inst_retire]
     136  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire]
     137  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire]
    133138
    134139    // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    136141  public    : SC_OUT(Tcontrol_t        )  *** out_RETIRE_EVENT_ACK         ;//[nb_front_end][nb_context]
    137142  public    : SC_IN (Tevent_state_t    )  ***  in_RETIRE_EVENT_STATE       ;//[nb_front_end][nb_context]
     143  public    : SC_IN (Tevent_type_t     )  ***  in_RETIRE_EVENT_TYPE        ;//[nb_front_end][nb_context]
     144  public    : SC_IN (Tdepth_t          )  ***  in_RETIRE_EVENT_DEPTH       ;//[nb_front_end][nb_context]
    138145
    139146    // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters.cpp

    r128 r139  
    2020#undef  FUNCTION
    2121#define FUNCTION "Register_translation_unit::Parameters"
    22   Parameters::Parameters (uint32_t   nb_front_end          ,
    23                           uint32_t * nb_context            ,
    24                           uint32_t   nb_general_register   ,
    25                           uint32_t   nb_special_register   ,
    26                           uint32_t   nb_inst_insert        ,
    27                           uint32_t   nb_inst_retire        ,
    28                           uint32_t   nb_reg_free           ,
    29                           uint32_t   nb_bank               ,
    30 //                        uint32_t   size_read_counter     ,
    31                           bool       is_toplevel)
     22  Parameters::Parameters (uint32_t         nb_front_end        ,
     23                          uint32_t       * nb_context          ,//[nb_front_end]
     24                          uint32_t         nb_general_register ,
     25                          uint32_t         nb_special_register ,
     26                          Trat_scheme_t    rat_scheme          ,
     27                          uint32_t         nb_inst_insert      ,
     28                          uint32_t         nb_inst_retire      ,
     29                          uint32_t         nb_reg_free         ,
     30                          uint32_t         nb_bank             ,
     31//                        uint32_t         size_read_counter   ,
     32                          uint32_t      ** nb_branch_speculated,//[nb_front_end][nb_context]
     33                          bool             is_toplevel)
    3234  {
    3335    log_printf(FUNC,Register_translation_unit,FUNCTION,"Begin");
    3436   
    35     _nb_front_end        = nb_front_end       ;
    36     _nb_context          = nb_context         ;
    37     _nb_general_register = nb_general_register;
    38     _nb_special_register = nb_special_register;
    39     _nb_inst_insert      = nb_inst_insert     ;
    40     _nb_inst_retire      = nb_inst_retire     ;
    41     _nb_reg_free         = nb_reg_free        ;
    42     _nb_bank             = nb_bank            ;
    43 //     _size_read_counter   = size_read_counter  ;
     37    _nb_front_end         = nb_front_end        ;
     38    _nb_context           = nb_context          ;
     39    _nb_general_register  = nb_general_register ;
     40    _nb_special_register  = nb_special_register ;
     41    _rat_scheme           = rat_scheme          ;
     42    _nb_inst_insert       = nb_inst_insert      ;
     43    _nb_inst_retire       = nb_inst_retire      ;
     44    _nb_reg_free          = nb_reg_free         ;
     45    _nb_bank              = nb_bank             ;
     46//  _size_read_counter    = size_read_counter   ;
     47    _nb_branch_speculated = nb_branch_speculated;
    4448
    4549    uint32_t size_general_register = log2(nb_general_register);
     
    6872
    6973    _param_register_address_translation_unit = new morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Parameters
    70       (_nb_front_end       ,
    71        _nb_context         ,
    72        _nb_general_register,
    73        _nb_special_register,
    74        _nb_inst_insert     ,
    75        _nb_inst_retire     );
     74      (_nb_front_end        ,
     75       _nb_context          ,
     76       _nb_general_register ,
     77       _nb_special_register ,
     78       _rat_scheme          ,
     79       _nb_inst_insert      ,
     80       _nb_inst_retire      ,
     81       _nb_branch_speculated);
    7682
    7783    _param_stat_list_unit                    = new morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::stat_list_unit::Parameters
     
    99105        _size_front_end_id      = log2(nb_front_end       );
    100106        _size_context_id        = log2(max_nb_context     );
    101 
     107        _size_depth             = log2(max<uint32_t>(_nb_branch_speculated,_nb_front_end,_nb_context));
    102108        _size_general_register  = size_general_register;
    103109        _size_special_register  = size_special_register;
     
    105111        _have_port_front_end_id = _size_front_end_id>0;
    106112        _have_port_context_id   = _size_context_id  >0;
     113        _have_port_depth        = _size_depth       >0;
    107114
    108115        copy();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters_print.cpp

    r112 r139  
    2727
    2828    xml.balise_open("register_translation_unit");
    29     xml.singleton_begin("nb_front_end       "); xml.attribut("value",toString(_nb_front_end       )); xml.singleton_end();
    30     xml.singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end();
    31     xml.singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end();
    32     xml.singleton_begin("nb_inst_insert     "); xml.attribut("value",toString(_nb_inst_insert     )); xml.singleton_end();
    33     xml.singleton_begin("nb_inst_retire     "); xml.attribut("value",toString(_nb_inst_retire     )); xml.singleton_end();
    34     xml.singleton_begin("nb_reg_free        "); xml.attribut("value",toString(_nb_reg_free        )); xml.singleton_end();
    35     xml.singleton_begin("nb_bank            "); xml.attribut("value",toString(_nb_bank            )); xml.singleton_end();
    36 //  xml.singleton_begin("size_read_counter  "); xml.attribut("value",toString(_size_read_counter  )); xml.singleton_end();
     29    xml.singleton_begin("nb_front_end        "); xml.attribut("value",toString(_nb_front_end       )); xml.singleton_end();
     30    xml.singleton_begin("nb_general_register "); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end();
     31    xml.singleton_begin("nb_special_register "); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end();
     32    xml.singleton_begin("rat_scheme          "); xml.attribut("value",toString(_rat_scheme         )); xml.singleton_end();
     33    xml.singleton_begin("nb_inst_insert      "); xml.attribut("value",toString(_nb_inst_insert     )); xml.singleton_end();
     34    xml.singleton_begin("nb_inst_retire      "); xml.attribut("value",toString(_nb_inst_retire     )); xml.singleton_end();
     35    xml.singleton_begin("nb_reg_free         "); xml.attribut("value",toString(_nb_reg_free        )); xml.singleton_end();
     36    xml.singleton_begin("nb_bank             "); xml.attribut("value",toString(_nb_bank            )); xml.singleton_end();
     37//  xml.singleton_begin("size_read_counter   "); xml.attribut("value",toString(_size_read_counter  )); xml.singleton_end();
    3738    for (uint32_t i=0;i<_nb_front_end; i++)
    3839      {
     
    4142        xml.  attribut("id"  ,toString(i));
    4243        xml. balise_open_end();
    43         xml.  singleton_begin("nb_context         "); xml.attribut("value",toString(_nb_context [i]     )); xml.singleton_end();
     44        xml.  singleton_begin("nb_context          "); xml.attribut("value",toString(_nb_context [i]     )); xml.singleton_end();
     45
     46        for (uint32_t j=0;j<_nb_context[i]; j++)
     47          {
     48            xml. balise_open_begin("component");
     49            xml.  attribut("type","context");
     50            xml.  attribut("id"  ,toString(j));
     51            xml. balise_open_end();
     52            xml.  singleton_begin("nb_branch_speculated"); xml.attribut("value",toString(_nb_branch_speculated[i][j])); xml.singleton_end();
     53            xml. balise_close();
     54          }
     55
    4456        xml. balise_close();
    4557      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp

    r137 r139  
    6060      ALLOC1_INTERFACE_BEGIN("rename", IN, EAST, _("Instruction with logical register"), _param->_nb_inst_insert);
    6161
    62       ALLOC1_VALACK_IN ( in_RENAME_VAL           ,VAL);
    63       ALLOC1_VALACK_OUT(out_RENAME_ACK           ,ACK);
    64       ALLOC1_SIGNAL_IN ( in_RENAME_FRONT_END_ID  ,"front_end_id"  ,Tcontext_t        ,_param->_size_front_end_id          );
    65       ALLOC1_SIGNAL_IN ( in_RENAME_CONTEXT_ID    ,"context_id"    ,Tcontext_t        ,_param->_size_context_id            );
    66       ALLOC1_SIGNAL_IN ( in_RENAME_READ_RA       ,"read_ra"       ,Tcontrol_t        ,1                                   );
    67       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RA_LOG,"num_reg_ra_log",Tgeneral_address_t,_param->_size_general_register_logic);
    68       ALLOC1_SIGNAL_IN ( in_RENAME_READ_RB       ,"read_rb"       ,Tcontrol_t        ,1                                   );
    69       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RB_LOG,"num_reg_rb_log",Tgeneral_address_t,_param->_size_general_register_logic);
    70       ALLOC1_SIGNAL_IN ( in_RENAME_READ_RC       ,"read_rc"       ,Tcontrol_t        ,1                                   );
    71       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RC_LOG,"num_reg_rc_log",Tspecial_address_t,_param->_size_special_register_logic);
    72       ALLOC1_SIGNAL_IN ( in_RENAME_WRITE_RD      ,"write_rd"      ,Tcontrol_t        ,1                                   );
    73       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RD_LOG,"num_reg_rd_log",Tgeneral_address_t,_param->_size_general_register_logic);
    74       ALLOC1_SIGNAL_IN ( in_RENAME_WRITE_RE      ,"write_re"      ,Tcontrol_t        ,1                                   );
    75       ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RE_LOG,"num_reg_re_log",Tspecial_address_t,_param->_size_special_register_logic);
     62      ALLOC1_VALACK_IN      ( in_RENAME_VAL           ,VAL);
     63      ALLOC1_VALACK_OUT     (out_RENAME_ACK           ,ACK);
     64      ALLOC1_SIGNAL_IN      ( in_RENAME_FRONT_END_ID  ,"front_end_id"  ,Tcontext_t        ,_param->_size_front_end_id          );
     65      ALLOC1_SIGNAL_IN      ( in_RENAME_CONTEXT_ID    ,"context_id"    ,Tcontext_t        ,_param->_size_context_id            );
     66      ALLOC1_SIGNAL_IN_COND ( in_RENAME_DEPTH         ,"depth"         ,Tdepth_t          ,_param->_size_depth                 ,_param->_rat_scheme == RAT_DEPTH_SAVE);
     67      ALLOC1_SIGNAL_IN      ( in_RENAME_SAVE_RAT      ,"save_rat"      ,Tcontrol_t        ,1                                   );
     68      ALLOC1_SIGNAL_IN      ( in_RENAME_READ_RA       ,"read_ra"       ,Tcontrol_t        ,1                                   );
     69      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RA_LOG,"num_reg_ra_log",Tgeneral_address_t,_param->_size_general_register_logic);
     70      ALLOC1_SIGNAL_IN      ( in_RENAME_READ_RB       ,"read_rb"       ,Tcontrol_t        ,1                                   );
     71      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RB_LOG,"num_reg_rb_log",Tgeneral_address_t,_param->_size_general_register_logic);
     72      ALLOC1_SIGNAL_IN      ( in_RENAME_READ_RC       ,"read_rc"       ,Tcontrol_t        ,1                                   );
     73      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RC_LOG,"num_reg_rc_log",Tspecial_address_t,_param->_size_special_register_logic);
     74      ALLOC1_SIGNAL_IN      ( in_RENAME_WRITE_RD      ,"write_rd"      ,Tcontrol_t        ,1                                   );
     75      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RD_LOG,"num_reg_rd_log",Tgeneral_address_t,_param->_size_general_register_logic);
     76      ALLOC1_SIGNAL_IN      ( in_RENAME_WRITE_RE      ,"write_re"      ,Tcontrol_t        ,1                                   );
     77      ALLOC1_SIGNAL_IN      ( in_RENAME_NUM_REG_RE_LOG,"num_reg_re_log",Tspecial_address_t,_param->_size_special_register_logic);
    7678
    7779      ALLOC1_INTERFACE_END(_param->_nb_inst_insert);
     
    135137      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register      );
    136138      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register      );
     139      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE           ,"restore"           ,Tcontrol_t        ,1                                   );
     140      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE_RD_PHY_OLD,"restore_rd_phy_old",Tcontrol_t        ,1                                   );
     141      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE_RE_PHY_OLD,"restore_re_phy_old",Tcontrol_t        ,1                                   );
    137142
    138143      ALLOC1_INTERFACE_END(_param->_nb_inst_retire);
     
    143148      ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]);
    144149
    145       _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL           ,VAL,_param->_nb_front_end, _param->_nb_context[it1]);
    146       _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK           ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
    147       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE      ,"state"             ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
     150      _ALLOC2_VALACK_IN      ( in_RETIRE_EVENT_VAL           ,VAL,_param->_nb_front_end, _param->_nb_context[it1]);
     151      _ALLOC2_VALACK_OUT     (out_RETIRE_EVENT_ACK           ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
     152      _ALLOC2_SIGNAL_IN      ( in_RETIRE_EVENT_STATE      ,"state"             ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
     153      _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_TYPE       ,"type"              ,Tevent_type_t     ,_param->_size_event_type , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE);
     154      _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_DEPTH      ,"depth"             ,Tdepth_t          ,_param->_size_depth      , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE);
    148155
    149156      ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]);
     
    295302          PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_CONTEXT_ID"        ,
    296303                              dest, "in_RENAME_"+toString(i)+"_CONTEXT_ID"        );
     304          if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE))
     305          PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_DEPTH"             ,
     306                              dest, "in_RENAME_"+toString(i)+"_DEPTH"             );
     307          PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_SAVE_RAT"          ,
     308                              dest, "in_RENAME_"+toString(i)+"_SAVE_RAT"          );
    297309          PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_NUM_REG_RA_LOG"    ,
    298310                              dest, "in_RENAME_"+toString(i)+"_NUM_REG_RA_LOG"    );
     
    376388          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW",
    377389                              dest, "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW");
     390          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE"           ,
     391                              dest, "in_RETIRE_"+toString(i)+"_RESTORE"           );
    378392
    379393          dest = _name+"_register_translation_unit_glue";
     
    383397                                   dest, "in_RETIRE_"+toString(i)+"_RAT_ACK"      );
    384398
    385           dest = _name+"_stat_list_unit";
    386           COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD",
    387                                    dest, "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD");
    388           COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD",
    389                                    dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD");
    390           COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE"           ,
    391                                    dest, "in_RETIRE_"+toString(i)+"_RESTORE"           );
     399          // dest = _name+"_stat_list_unit";
     400          // COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD",
     401          //                          dest, "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD");
     402          // COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD",
     403          //                          dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD");
     404          // COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE"           ,
     405          //                          dest, "in_RETIRE_"+toString(i)+"_RESTORE"           );
    392406        }
    393407
     
    407421            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE",
    408422                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE");
     423            if (_param->_rat_scheme == RAT_DEPTH_SAVE)
     424              {
     425            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_TYPE" ,
     426                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_TYPE" );
     427            if (_param->_have_port_depth)
     428            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_DEPTH",
     429                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_DEPTH");
     430              }
    409431          }
    410432    }
     
    717739          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW",
    718740                              dest, "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW");
    719 
    720           // in_RETIRE_RESTORE_RD_PHY_OLD - register_address_translation_unit.out_RETIRE_RESTORE_RD_PHY_OLD
    721           // in_RETIRE_RESTORE_RE_PHY_OLD - register_address_translation_unit.out_RETIRE_RESTORE_RE_PHY_OLD
    722           // in_RETIRE_RESTORE            - register_address_translation_unit.out_RETIRE_RESTORE           
     741          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE",
     742                              dest, "in_RETIRE_"+toString(i)+"_RESTORE");
     743          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD",
     744                              dest, "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD");
     745          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD",
     746                              dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD");
    723747
    724748          dest = _name+"_register_translation_unit_glue";
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_deallocation.cpp

    r137 r139  
    2929        delete    in_NRESET;
    3030
    31         DELETE1_SIGNAL( in_RENAME_VAL           ,_param->_nb_inst_insert,1);
    32         DELETE1_SIGNAL(out_RENAME_ACK           ,_param->_nb_inst_insert,1);
    33         DELETE1_SIGNAL( in_RENAME_FRONT_END_ID  ,_param->_nb_inst_insert,_param->_size_front_end_id          );
    34         DELETE1_SIGNAL( in_RENAME_CONTEXT_ID    ,_param->_nb_inst_insert,_param->_size_context_id            );
    35         DELETE1_SIGNAL( in_RENAME_READ_RA       ,_param->_nb_inst_insert,1                                   );
    36         DELETE1_SIGNAL( in_RENAME_NUM_REG_RA_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
    37         DELETE1_SIGNAL( in_RENAME_READ_RB       ,_param->_nb_inst_insert,1                                   );
    38         DELETE1_SIGNAL( in_RENAME_NUM_REG_RB_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
    39         DELETE1_SIGNAL( in_RENAME_READ_RC       ,_param->_nb_inst_insert,1                                   );
    40         DELETE1_SIGNAL( in_RENAME_NUM_REG_RC_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic);
    41         DELETE1_SIGNAL( in_RENAME_WRITE_RD      ,_param->_nb_inst_insert,1                                   );
    42         DELETE1_SIGNAL( in_RENAME_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
    43         DELETE1_SIGNAL( in_RENAME_WRITE_RE      ,_param->_nb_inst_insert,1                                   );
    44         DELETE1_SIGNAL( in_RENAME_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic);
     31        DELETE1_SIGNAL     ( in_RENAME_VAL           ,_param->_nb_inst_insert,1);
     32        DELETE1_SIGNAL     (out_RENAME_ACK           ,_param->_nb_inst_insert,1);
     33        DELETE1_SIGNAL     ( in_RENAME_FRONT_END_ID  ,_param->_nb_inst_insert,_param->_size_front_end_id          );
     34        DELETE1_SIGNAL     ( in_RENAME_CONTEXT_ID    ,_param->_nb_inst_insert,_param->_size_context_id            );
     35        DELETE1_SIGNAL_COND( in_RENAME_DEPTH         ,_param->_nb_inst_insert,_param->_size_depth                 ,_param->_rat_scheme == RAT_DEPTH_SAVE);
     36        DELETE1_SIGNAL     ( in_RENAME_SAVE_RAT      ,_param->_nb_inst_insert,1                                   );
     37        DELETE1_SIGNAL     ( in_RENAME_READ_RA       ,_param->_nb_inst_insert,1                                   );
     38        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RA_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
     39        DELETE1_SIGNAL     ( in_RENAME_READ_RB       ,_param->_nb_inst_insert,1                                   );
     40        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RB_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
     41        DELETE1_SIGNAL     ( in_RENAME_READ_RC       ,_param->_nb_inst_insert,1                                   );
     42        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RC_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic);
     43        DELETE1_SIGNAL     ( in_RENAME_WRITE_RD      ,_param->_nb_inst_insert,1                                   );
     44        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic);
     45        DELETE1_SIGNAL     ( in_RENAME_WRITE_RE      ,_param->_nb_inst_insert,1                                   );
     46        DELETE1_SIGNAL     ( in_RENAME_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic);
     47                           
     48        DELETE1_SIGNAL     (out_INSERT_VAL               ,_param->_nb_inst_insert,1);
     49        DELETE1_SIGNAL     ( in_INSERT_ACK               ,_param->_nb_inst_insert,1);
     50//      DELETE1_SIGNAL     (out_INSERT_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id          );
     51//      DELETE1_SIGNAL     (out_INSERT_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id            );
     52        DELETE1_SIGNAL     (out_INSERT_READ_RA           ,_param->_nb_inst_insert,1                                   );
     53#ifdef DEBUG               
     54        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RA_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     55#endif                     
     56        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RA_PHY    ,_param->_nb_inst_insert,_param->_size_general_register      );
     57        DELETE1_SIGNAL     (out_INSERT_READ_RB           ,_param->_nb_inst_insert,1                                   );
     58#ifdef DEBUG               
     59        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RB_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     60#endif                     
     61        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RB_PHY    ,_param->_nb_inst_insert,_param->_size_general_register      );
     62        DELETE1_SIGNAL     (out_INSERT_READ_RC           ,_param->_nb_inst_insert,1                                   );
     63#ifdef DEBUG               
     64        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RC_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
     65#endif                     
     66        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RC_PHY    ,_param->_nb_inst_insert,_param->_size_special_register      );
     67        DELETE1_SIGNAL     (out_INSERT_WRITE_RD          ,_param->_nb_inst_insert,1                                   );
     68        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RD_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     69        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register      );
     70        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert,_param->_size_general_register      );
     71        DELETE1_SIGNAL     (out_INSERT_WRITE_RE          ,_param->_nb_inst_insert,1                                   );
     72        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
     73        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register      );
     74        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register      );
     75                           
     76        DELETE1_SIGNAL     ( in_RETIRE_VAL               ,_param->_nb_inst_retire,1);
     77        DELETE1_SIGNAL     (out_RETIRE_ACK               ,_param->_nb_inst_retire,1);
     78        DELETE1_SIGNAL     ( in_RETIRE_FRONT_END_ID      ,_param->_nb_inst_retire,_param->_size_front_end_id          );
     79        DELETE1_SIGNAL     ( in_RETIRE_CONTEXT_ID        ,_param->_nb_inst_retire,_param->_size_context_id            );
     80//      DELETE1_SIGNAL     ( in_RETIRE_READ_RA           ,_param->_nb_inst_retire,1                                   );
     81//      DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RA_PHY    ,_param->_nb_inst_retire,_param->_size_general_register      );
     82//      DELETE1_SIGNAL     ( in_RETIRE_READ_RB           ,_param->_nb_inst_retire,1                                   );
     83//      DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RB_PHY    ,_param->_nb_inst_retire,_param->_size_general_register      );
     84//      DELETE1_SIGNAL     ( in_RETIRE_READ_RC           ,_param->_nb_inst_retire,1                                   );
     85//      DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RC_PHY    ,_param->_nb_inst_retire,_param->_size_special_register      );
     86        DELETE1_SIGNAL     ( in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire,1                                   );
     87        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_LOG    ,_param->_nb_inst_retire,_param->_size_general_register_logic);
     88        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_PHY_OLD,_param->_nb_inst_retire,_param->_size_general_register      );
     89        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register      );
     90        DELETE1_SIGNAL     ( in_RETIRE_WRITE_RE          ,_param->_nb_inst_retire,1                                   );
     91        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_LOG    ,_param->_nb_inst_retire,_param->_size_special_register_logic);
     92        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire,_param->_size_special_register      );
     93        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register      );
     94        DELETE1_SIGNAL     ( in_RETIRE_RESTORE              ,_param->_nb_inst_retire,1);
     95        DELETE1_SIGNAL     ( in_RETIRE_RESTORE_RD_PHY_OLD   ,_param->_nb_inst_retire,1);
     96        DELETE1_SIGNAL     ( in_RETIRE_RESTORE_RE_PHY_OLD   ,_param->_nb_inst_retire,1);
    4597
    46         DELETE1_SIGNAL(out_INSERT_VAL               ,_param->_nb_inst_insert,1);
    47         DELETE1_SIGNAL( in_INSERT_ACK               ,_param->_nb_inst_insert,1);
    48 //      DELETE1_SIGNAL(out_INSERT_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id          );
    49 //      DELETE1_SIGNAL(out_INSERT_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id            );
    50         DELETE1_SIGNAL(out_INSERT_READ_RA           ,_param->_nb_inst_insert,1                                   );
    51 #ifdef DEBUG
    52         DELETE1_SIGNAL(out_INSERT_NUM_REG_RA_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    53 #endif
    54         DELETE1_SIGNAL(out_INSERT_NUM_REG_RA_PHY    ,_param->_nb_inst_insert,_param->_size_general_register      );
    55         DELETE1_SIGNAL(out_INSERT_READ_RB           ,_param->_nb_inst_insert,1                                   );
    56 #ifdef DEBUG
    57         DELETE1_SIGNAL(out_INSERT_NUM_REG_RB_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    58 #endif
    59         DELETE1_SIGNAL(out_INSERT_NUM_REG_RB_PHY    ,_param->_nb_inst_insert,_param->_size_general_register      );
    60         DELETE1_SIGNAL(out_INSERT_READ_RC           ,_param->_nb_inst_insert,1                                   );
    61 #ifdef DEBUG
    62         DELETE1_SIGNAL(out_INSERT_NUM_REG_RC_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
    63 #endif
    64         DELETE1_SIGNAL(out_INSERT_NUM_REG_RC_PHY    ,_param->_nb_inst_insert,_param->_size_special_register      );
    65         DELETE1_SIGNAL(out_INSERT_WRITE_RD          ,_param->_nb_inst_insert,1                                   );
    66         DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_LOG    ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    67         DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register      );
    68         DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert,_param->_size_general_register      );
    69         DELETE1_SIGNAL(out_INSERT_WRITE_RE          ,_param->_nb_inst_insert,1                                   );
    70         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_LOG    ,_param->_nb_inst_insert,_param->_size_special_register_logic);
    71         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register      );
    72         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register      );
    73 
    74         DELETE1_SIGNAL( in_RETIRE_VAL               ,_param->_nb_inst_retire,1);
    75         DELETE1_SIGNAL(out_RETIRE_ACK               ,_param->_nb_inst_retire,1);
    76         DELETE1_SIGNAL( in_RETIRE_FRONT_END_ID      ,_param->_nb_inst_retire,_param->_size_front_end_id          );
    77         DELETE1_SIGNAL( in_RETIRE_CONTEXT_ID        ,_param->_nb_inst_retire,_param->_size_context_id            );
    78 //         DELETE1_SIGNAL( in_RETIRE_READ_RA           ,_param->_nb_inst_retire,1                                   );
    79 //         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RA_PHY    ,_param->_nb_inst_retire,_param->_size_general_register      );
    80 //         DELETE1_SIGNAL( in_RETIRE_READ_RB           ,_param->_nb_inst_retire,1                                   );
    81 //         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RB_PHY    ,_param->_nb_inst_retire,_param->_size_general_register      );
    82 //         DELETE1_SIGNAL( in_RETIRE_READ_RC           ,_param->_nb_inst_retire,1                                   );
    83 //         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RC_PHY    ,_param->_nb_inst_retire,_param->_size_special_register      );
    84         DELETE1_SIGNAL( in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire,1                                   );
    85         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_LOG    ,_param->_nb_inst_retire,_param->_size_general_register_logic);
    86         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_OLD,_param->_nb_inst_retire,_param->_size_general_register      );
    87         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register      );
    88         DELETE1_SIGNAL( in_RETIRE_WRITE_RE          ,_param->_nb_inst_retire,1                                   );
    89         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_LOG    ,_param->_nb_inst_retire,_param->_size_special_register_logic);
    90         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire,_param->_size_special_register      );
    91         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register      );
    92 
    93         DELETE2_SIGNAL( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    94         DELETE2_SIGNAL(out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    95         DELETE2_SIGNAL( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
     98        DELETE2_SIGNAL     ( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1],1);
     99        DELETE2_SIGNAL     (out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
     100        DELETE2_SIGNAL     ( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
     101        DELETE2_SIGNAL_COND( in_RETIRE_EVENT_TYPE           ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_type,_param->_rat_scheme == RAT_DEPTH_SAVE);
     102        DELETE2_SIGNAL_COND( in_RETIRE_EVENT_DEPTH          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_depth     ,_param->_rat_scheme == RAT_DEPTH_SAVE);
    96103
    97104#ifdef DEBUG_TEST
    98         DELETE0_SIGNAL( in_INFO_ROB_EMPTY  ,1);
     105        DELETE0_SIGNAL     ( in_INFO_ROB_EMPTY  ,1);
    99106#endif
    100107      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/include/Rename_select.h

    r137 r139  
    8181  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_LAST_EVENT    ;//[nb_front_end][nb_inst_decod]
    8282  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_IS_DELAY_SLOT ;//[nb_front_end][nb_inst_decod]
     83  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_SAVE_RAT      ;//[nb_front_end][nb_inst_decod]
    8384#ifdef DEBUG
    8485  public    : SC_IN (Taddress_t        )  ***  in_RENAME_IN_ADDRESS       ;//[nb_front_end][nb_inst_decod]
     
    114115  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_LAST_EVENT   ;//[nb_inst_rename]
    115116  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_IS_DELAY_SLOT;//[nb_inst_rename]
     117  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_SAVE_RAT     ;//[nb_inst_rename]
    116118#ifdef DEBUG
    117119  public    : SC_OUT(Taddress_t        )   ** out_RENAME_OUT_ADDRESS      ;//[nb_inst_rename]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select.cpp

    r132 r139  
    101101                        << (*(in_RENAME_IN_LAST_EVENT    [i][j]))
    102102                        << (*(in_RENAME_IN_IS_DELAY_SLOT [i][j]))
     103                        << (*(in_RENAME_IN_SAVE_RAT      [i][j]))
    103104#ifdef DEBUG
    104105                        << (*(in_RENAME_IN_ADDRESS       [i][j]))
     
    176177                  (*(out_RENAME_OUT_IS_DELAY_SLOT [x])) (*(in_RENAME_IN_VAL           [i][j]));
    177178                  (*(out_RENAME_OUT_IS_DELAY_SLOT [x])) (*(in_RENAME_IN_IS_DELAY_SLOT [i][j]));
     179                  (*(out_RENAME_OUT_SAVE_RAT      [x])) (*(in_RENAME_IN_VAL           [i][j]));
     180                  (*(out_RENAME_OUT_SAVE_RAT      [x])) (*(in_RENAME_IN_SAVE_RAT      [i][j]));
    178181#ifdef DEBUG
    179182                  (*(out_RENAME_OUT_ADDRESS       [x])) (*(in_RENAME_IN_VAL           [i][j]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_allocation.cpp

    r137 r139  
    7474      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_LAST_EVENT    ,"last_event"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7575      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     76      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_SAVE_RAT      ,"save_rat"     ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7677#ifdef DEBUG
    7778      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_ADDRESS       ,"address"      ,Taddress_t        ,_param->_size_instruction_address   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     
    113114      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_LAST_EVENT    ,"last_event"   ,Tcontrol_t        ,1                                   );
    114115      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t        ,1                                   );
     116      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_SAVE_RAT      ,"save_rat"     ,Tcontrol_t        ,1                                   );
    115117#ifdef DEBUG
    116118      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_ADDRESS       ,"address"      ,Taddress_t        ,_param->_size_instruction_address   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp

    r137 r139  
    111111                    PORT_WRITE(out_RENAME_OUT_LAST_EVENT   [i],PORT_READ(in_RENAME_IN_LAST_EVENT    [x][y]));
    112112                    PORT_WRITE(out_RENAME_OUT_IS_DELAY_SLOT[i],PORT_READ(in_RENAME_IN_IS_DELAY_SLOT [x][y]));
     113                    PORT_WRITE(out_RENAME_OUT_SAVE_RAT     [i],PORT_READ(in_RENAME_IN_SAVE_RAT      [x][y]));
    113114#ifdef DEBUG       
    114115                    PORT_WRITE(out_RENAME_OUT_ADDRESS      [i],PORT_READ(in_RENAME_IN_ADDRESS       [x][y]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/include/Parameters.h

    r88 r139  
    1111#include "Behavioural/include/Parameters.h"
    1212#include "Common/include/Debug.h"
     13#include "Behavioural/include/Types.h"
    1314
    1415namespace morpheo {
     
    2425  {
    2526    //-----[ fields ]------------------------------------------------------------
    26   public : uint32_t    _nb_front_end          ;
    27   public : uint32_t  * _nb_context            ;//[nb_front_end]
    28   public : uint32_t    _nb_inst_insert        ;
    29   public : uint32_t    _nb_inst_retire        ;
    30 //public : uint32_t    _size_general_data     ;
    31 //public : uint32_t    _size_special_register ;
     27  public : uint32_t        _nb_front_end          ;
     28  public : uint32_t      * _nb_context            ;//[nb_front_end]
     29  public : uint32_t        _nb_inst_insert        ;
     30  public : uint32_t        _nb_inst_retire        ;
     31//public : uint32_t        _size_general_data     ;
     32//public : uint32_t        _size_special_register ;
     33  public : Trat_scheme_t   _rat_scheme            ;
    3234
    3335//public : uint32_t    _size_front_end_id     ;
     
    3840
    3941    //-----[ methods ]-----------------------------------------------------------
    40   public : Parameters  (uint32_t    nb_front_end         ,
    41                         uint32_t  * nb_context           ,
    42 //                      uint32_t    size_front_end_id    ,
    43 //                      uint32_t    size_context_id      ,
    44                         uint32_t    nb_inst_insert       ,
    45                         uint32_t    nb_inst_retire       ,
    46                         uint32_t    size_general_data    ,
    47                         uint32_t    size_special_register,
    48                         bool        is_toplevel=false
     42  public : Parameters  (uint32_t        nb_front_end         ,
     43                        uint32_t      * nb_context           ,
     44//                      uint32_t        size_front_end_id    ,
     45//                      uint32_t        size_context_id      ,
     46                        uint32_t        nb_inst_insert       ,
     47                        uint32_t        nb_inst_retire       ,
     48                        uint32_t        size_general_data    ,
     49                        uint32_t        size_special_register,
     50                        Trat_scheme_t   rat_scheme           ,
     51                        bool            is_toplevel=false
    4952                        );
    5053//   public : Parameters  (Parameters & param) ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/include/Rename_unit_Glue.h

    r122 r139  
    1212#include "systemc.h"
    1313#endif
    14 
    1514
    1615#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/include/Parameters.h"
     
    6968  public    : SC_OUT(Tcontext_t        )   ** out_INSERT_FRONT_END_ID                           ;//[nb_inst_insert]
    7069  public    : SC_OUT(Tcontext_t        )   ** out_INSERT_CONTEXT_ID                             ;//[nb_inst_insert]
     70  public    : SC_OUT(Tdepth_t          )   ** out_INSERT_DEPTH                                  ;//[nb_inst_insert]
    7171  public    : SC_OUT(Ttype_t           )   ** out_INSERT_TYPE                                   ;//[nb_inst_insert]
    7272  public    : SC_OUT(Toperation_t      )   ** out_INSERT_OPERATION                              ;//[nb_inst_insert]
     
    8181  public    : SC_IN (Tcontext_t        )   **  in_INSERT_RENAME_SELECT_FRONT_END_ID             ;//[nb_inst_insert]
    8282  public    : SC_IN (Tcontext_t        )   **  in_INSERT_RENAME_SELECT_CONTEXT_ID               ;//[nb_inst_insert]
     83  public    : SC_IN (Tdepth_t          )   **  in_INSERT_RENAME_SELECT_DEPTH                    ;//[nb_inst_insert]
    8384  public    : SC_IN (Ttype_t           )   **  in_INSERT_RENAME_SELECT_TYPE                     ;//[nb_inst_insert]
    8485  public    : SC_IN (Toperation_t      )   **  in_INSERT_RENAME_SELECT_OPERATION                ;//[nb_inst_insert]
     
    9293  public    : SC_OUT(Tcontext_t        )   ** out_INSERT_REGISTER_TRANSLATION_FRONT_END_ID      ;//[nb_inst_insert]
    9394  public    : SC_OUT(Tcontext_t        )   ** out_INSERT_REGISTER_TRANSLATION_CONTEXT_ID        ;//[nb_inst_insert]
     95  public    : SC_OUT(Tdepth_t          )   ** out_INSERT_REGISTER_TRANSLATION_DEPTH             ;//[nb_inst_insert]
    9496  public    : SC_IN (Tspecial_address_t)   **  in_INSERT_REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW;//[nb_inst_insert]
    9597
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Parameters.cpp

    r88 r139  
    1919#undef  FUNCTION
    2020#define FUNCTION "Rename_unit_Glue::Parameters"
    21   Parameters::Parameters (uint32_t    nb_front_end          ,
    22                           uint32_t  * nb_context            ,
    23 //                        uint32_t    size_front_end_id     ,
    24 //                        uint32_t    size_context_id       ,
    25                           uint32_t    nb_inst_insert        ,
    26                           uint32_t    nb_inst_retire        ,
    27                           uint32_t    size_general_data     ,
    28                           uint32_t    size_special_register ,
    29                           bool        is_toplevel
     21  Parameters::Parameters (uint32_t        nb_front_end          ,
     22                          uint32_t      * nb_context            ,
     23//                        uint32_t        size_front_end_id     ,
     24//                        uint32_t        size_context_id       ,
     25                          uint32_t        nb_inst_insert        ,
     26                          uint32_t        nb_inst_retire        ,
     27                          uint32_t        size_general_data     ,
     28                          uint32_t        size_special_register ,
     29                          Trat_scheme_t   rat_scheme           ,
     30                          bool            is_toplevel
    3031                          )
    3132  {
     
    3637    _nb_inst_insert         = nb_inst_insert;
    3738    _nb_inst_retire         = nb_inst_retire;
     39    _rat_scheme             = rat_scheme    ;
    3840
    3941    test();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue.cpp

    r132 r139  
    163163            if (_param->_have_port_context_id)
    164164            sensitive << (*(in_INSERT_RENAME_SELECT_CONTEXT_ID                [i]));
     165            if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE))
     166            sensitive << (*(in_INSERT_RENAME_SELECT_DEPTH                     [i]));
    165167            sensitive << (*(in_INSERT_RENAME_SELECT_TYPE                      [i]))
    166168                      << (*(in_INSERT_RENAME_SELECT_OPERATION                 [i]))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_allocation.cpp

    r122 r139  
    6161      ALLOC1_INTERFACE_BEGIN("insert",OUT,NORTH,_("Insert interface"),_param->_nb_inst_insert);
    6262
    63 //    ALLOC1_SIGNAL_OUT(out_INSERT_VAL                                    ,"VAL"                                    ,Tcontrol_t        ,1);
    64 //    ALLOC1_SIGNAL_IN ( in_INSERT_ACK                                    ,"ACK"                                    ,Tcontrol_t        ,1);
    65       ALLOC1_SIGNAL_OUT(out_INSERT_FRONT_END_ID                           ,"FRONT_END_ID"                           ,Tcontext_t        ,_param->_size_front_end_id);
    66       ALLOC1_SIGNAL_OUT(out_INSERT_CONTEXT_ID                             ,"CONTEXT_ID"                             ,Tcontext_t        ,_param->_size_context_id);
    67       ALLOC1_SIGNAL_OUT(out_INSERT_TYPE                                   ,"TYPE"                                   ,Ttype_t           ,_param->_size_type);
    68       ALLOC1_SIGNAL_OUT(out_INSERT_OPERATION                              ,"OPERATION"                              ,Toperation_t      ,_param->_size_operation);
    69       ALLOC1_SIGNAL_OUT(out_INSERT_IMMEDIAT                               ,"IMMEDIAT"                               ,Tgeneral_data_t   ,_param->_size_general_data);
    70 //    ALLOC1_SIGNAL_OUT(out_INSERT_EXCEPTION_USE                          ,"EXCEPTION_USE"                          ,Texception_t      ,_param->_size_exception_use);
    71       ALLOC1_SIGNAL_OUT(out_INSERT_EXCEPTION                              ,"EXCEPTION"                              ,Texception_t      ,_param->_size_exception);
    72       ALLOC1_SIGNAL_OUT(out_INSERT_NUM_REG_RE_PHY_NEW                     ,"NUM_REG_RE_PHY_NEW"                     ,Tspecial_address_t,_param->_size_special_register);
    73       ALLOC1_SIGNAL_OUT(out_INSERT_NO_EXECUTE                             ,"NO_EXECUTE"                             ,Tcontrol_t        ,1);
    74 
    75       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_VAL                      ,"RENAME_SELECT_VAL"                      ,Tcontrol_t        ,1);
    76       ALLOC1_SIGNAL_OUT(out_INSERT_RENAME_SELECT_ACK                      ,"RENAME_SELECT_ACK"                      ,Tcontrol_t        ,1);
    77       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_FRONT_END_ID             ,"RENAME_SELECT_FRONT_END_ID"             ,Tcontext_t        ,_param->_size_front_end_id);
    78       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_CONTEXT_ID               ,"RENAME_SELECT_CONTEXT_ID"               ,Tcontext_t        ,_param->_size_context_id);
    79       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_TYPE                     ,"RENAME_SELECT_TYPE"                     ,Ttype_t           ,_param->_size_type);
    80       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_OPERATION                ,"RENAME_SELECT_OPERATION"                ,Toperation_t      ,_param->_size_operation);
    81       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_IMMEDIAT                 ,"RENAME_SELECT_IMMEDIAT"                 ,Tgeneral_data_t   ,_param->_size_general_data);
    82 //    ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_EXCEPTION_USE            ,"RENAME_SELECT_EXCEPTION_USE"            ,Texception_t      ,_param->_size_exception_use);
    83       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_EXCEPTION                ,"RENAME_SELECT_EXCEPTION"                ,Texception_t      ,_param->_size_exception);
    84       ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_NO_EXECUTE               ,"RENAME_SELECT_NO_EXECUTE"               ,Tcontrol_t        ,1);
    85 
    86       ALLOC1_SIGNAL_OUT(out_INSERT_REGISTER_TRANSLATION_VAL               ,"REGISTER_TRANSLATION_VAL"               ,Tcontrol_t        ,1);
    87       ALLOC1_SIGNAL_IN ( in_INSERT_REGISTER_TRANSLATION_ACK               ,"REGISTER_TRANSLATION_ACK"               ,Tcontrol_t        ,1);
    88       ALLOC1_SIGNAL_OUT(out_INSERT_REGISTER_TRANSLATION_FRONT_END_ID      ,"REGISTER_TRANSLATION_FRONT_END_ID"      ,Tcontext_t        ,_param->_size_front_end_id);
    89       ALLOC1_SIGNAL_OUT(out_INSERT_REGISTER_TRANSLATION_CONTEXT_ID        ,"REGISTER_TRANSLATION_CONTEXT_ID"        ,Tcontext_t        ,_param->_size_context_id);
    90       ALLOC1_SIGNAL_IN ( in_INSERT_REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW,"REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW",Tspecial_address_t,_param->_size_special_register);
    91       ALLOC1_SIGNAL_OUT(out_INSERT_LOAD_STORE_QUEUE_POINTER_VAL           ,"LOAD_STORE_QUEUE_POINTER_VAL"           ,Tcontrol_t        ,1);
    92       ALLOC1_SIGNAL_IN ( in_INSERT_LOAD_STORE_QUEUE_POINTER_ACK           ,"LOAD_STORE_QUEUE_POINTER_ACK"           ,Tcontrol_t        ,1);
    93       ALLOC1_SIGNAL_OUT(out_INSERT_LOAD_STORE_QUEUE_POINTER_FRONT_END_ID  ,"LOAD_STORE_QUEUE_POINTER_FRONT_END_ID"  ,Tcontext_t        ,_param->_size_front_end_id);
    94       ALLOC1_SIGNAL_OUT(out_INSERT_LOAD_STORE_QUEUE_POINTER_CONTEXT_ID    ,"LOAD_STORE_QUEUE_POINTER_CONTEXT_ID"    ,Tcontext_t        ,_param->_size_context_id);
    95       ALLOC1_SIGNAL_OUT(out_INSERT_LOAD_STORE_QUEUE_POINTER_TYPE          ,"LOAD_STORE_QUEUE_POINTER_TYPE"          ,Ttype_t           ,_param->_size_type);
    96       ALLOC1_SIGNAL_OUT(out_INSERT_LOAD_STORE_QUEUE_POINTER_OPERATION     ,"LOAD_STORE_QUEUE_POINTER_OPERATION"     ,Toperation_t      ,_param->_size_operation);
     63//    ALLOC1_SIGNAL_OUT     (out_INSERT_VAL                                    ,"VAL"                                    ,Tcontrol_t        ,1);
     64//    ALLOC1_SIGNAL_IN      ( in_INSERT_ACK                                    ,"ACK"                                    ,Tcontrol_t        ,1);
     65      ALLOC1_SIGNAL_OUT     (out_INSERT_FRONT_END_ID                           ,"FRONT_END_ID"                           ,Tcontext_t        ,_param->_size_front_end_id);
     66      ALLOC1_SIGNAL_OUT     (out_INSERT_CONTEXT_ID                             ,"CONTEXT_ID"                             ,Tcontext_t        ,_param->_size_context_id);
     67      ALLOC1_SIGNAL_OUT_COND(out_INSERT_DEPTH                                  ,"DEPTH"                                  ,Tdepth_t          ,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     68      ALLOC1_SIGNAL_OUT     (out_INSERT_TYPE                                   ,"TYPE"                                   ,Ttype_t           ,_param->_size_type);
     69      ALLOC1_SIGNAL_OUT     (out_INSERT_OPERATION                              ,"OPERATION"                              ,Toperation_t      ,_param->_size_operation);
     70      ALLOC1_SIGNAL_OUT     (out_INSERT_IMMEDIAT                               ,"IMMEDIAT"                               ,Tgeneral_data_t   ,_param->_size_general_data);
     71//    ALLOC1_SIGNAL_OUT     (out_INSERT_EXCEPTION_USE                          ,"EXCEPTION_USE"                          ,Texception_t      ,_param->_size_exception_use);
     72      ALLOC1_SIGNAL_OUT     (out_INSERT_EXCEPTION                              ,"EXCEPTION"                              ,Texception_t      ,_param->_size_exception);
     73      ALLOC1_SIGNAL_OUT     (out_INSERT_NUM_REG_RE_PHY_NEW                     ,"NUM_REG_RE_PHY_NEW"                     ,Tspecial_address_t,_param->_size_special_register);
     74      ALLOC1_SIGNAL_OUT     (out_INSERT_NO_EXECUTE                             ,"NO_EXECUTE"                             ,Tcontrol_t        ,1);
     75                           
     76      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_VAL                      ,"RENAME_SELECT_VAL"                      ,Tcontrol_t        ,1);
     77      ALLOC1_SIGNAL_OUT     (out_INSERT_RENAME_SELECT_ACK                      ,"RENAME_SELECT_ACK"                      ,Tcontrol_t        ,1);
     78      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_FRONT_END_ID             ,"RENAME_SELECT_FRONT_END_ID"             ,Tcontext_t        ,_param->_size_front_end_id);
     79      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_CONTEXT_ID               ,"RENAME_SELECT_CONTEXT_ID"               ,Tcontext_t        ,_param->_size_context_id);
     80      ALLOC1_SIGNAL_IN_COND ( in_INSERT_RENAME_SELECT_DEPTH                    ,"RENAME_SELECT_DEPTH"                    ,Tdepth_t          ,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     81      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_TYPE                     ,"RENAME_SELECT_TYPE"                     ,Ttype_t           ,_param->_size_type);
     82      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_OPERATION                ,"RENAME_SELECT_OPERATION"                ,Toperation_t      ,_param->_size_operation);
     83      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_IMMEDIAT                 ,"RENAME_SELECT_IMMEDIAT"                 ,Tgeneral_data_t   ,_param->_size_general_data);
     84//    ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_EXCEPTION_USE            ,"RENAME_SELECT_EXCEPTION_USE"            ,Texception_t      ,_param->_size_exception_use);
     85      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_EXCEPTION                ,"RENAME_SELECT_EXCEPTION"                ,Texception_t      ,_param->_size_exception);
     86      ALLOC1_SIGNAL_IN      ( in_INSERT_RENAME_SELECT_NO_EXECUTE               ,"RENAME_SELECT_NO_EXECUTE"               ,Tcontrol_t        ,1);
     87                           
     88      ALLOC1_SIGNAL_OUT     (out_INSERT_REGISTER_TRANSLATION_VAL               ,"REGISTER_TRANSLATION_VAL"               ,Tcontrol_t        ,1);
     89      ALLOC1_SIGNAL_IN      ( in_INSERT_REGISTER_TRANSLATION_ACK               ,"REGISTER_TRANSLATION_ACK"               ,Tcontrol_t        ,1);
     90      ALLOC1_SIGNAL_OUT     (out_INSERT_REGISTER_TRANSLATION_FRONT_END_ID      ,"REGISTER_TRANSLATION_FRONT_END_ID"      ,Tcontext_t        ,_param->_size_front_end_id);
     91      ALLOC1_SIGNAL_OUT     (out_INSERT_REGISTER_TRANSLATION_CONTEXT_ID        ,"REGISTER_TRANSLATION_CONTEXT_ID"        ,Tcontext_t        ,_param->_size_context_id);
     92      ALLOC1_SIGNAL_OUT_COND(out_INSERT_REGISTER_TRANSLATION_DEPTH             ,"REGISTER_TRANSLATION_DEPTH"             ,Tdepth_t          ,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     93      ALLOC1_SIGNAL_IN      ( in_INSERT_REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW,"REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW",Tspecial_address_t,_param->_size_special_register);
     94      ALLOC1_SIGNAL_OUT     (out_INSERT_LOAD_STORE_QUEUE_POINTER_VAL           ,"LOAD_STORE_QUEUE_POINTER_VAL"           ,Tcontrol_t        ,1);
     95      ALLOC1_SIGNAL_IN      ( in_INSERT_LOAD_STORE_QUEUE_POINTER_ACK           ,"LOAD_STORE_QUEUE_POINTER_ACK"           ,Tcontrol_t        ,1);
     96      ALLOC1_SIGNAL_OUT     (out_INSERT_LOAD_STORE_QUEUE_POINTER_FRONT_END_ID  ,"LOAD_STORE_QUEUE_POINTER_FRONT_END_ID"  ,Tcontext_t        ,_param->_size_front_end_id);
     97      ALLOC1_SIGNAL_OUT     (out_INSERT_LOAD_STORE_QUEUE_POINTER_CONTEXT_ID    ,"LOAD_STORE_QUEUE_POINTER_CONTEXT_ID"    ,Tcontext_t        ,_param->_size_context_id);
     98      ALLOC1_SIGNAL_OUT     (out_INSERT_LOAD_STORE_QUEUE_POINTER_TYPE          ,"LOAD_STORE_QUEUE_POINTER_TYPE"          ,Ttype_t           ,_param->_size_type);
     99      ALLOC1_SIGNAL_OUT     (out_INSERT_LOAD_STORE_QUEUE_POINTER_OPERATION     ,"LOAD_STORE_QUEUE_POINTER_OPERATION"     ,Toperation_t      ,_param->_size_operation);
    97100
    98101      ALLOC1_INTERFACE_END(_param->_nb_inst_insert);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_deallocation.cpp

    r122 r139  
    2929        delete    in_NRESET;
    3030
    31 //      DELETE1_SIGNAL(out_INSERT_VAL                                    ,_param->_nb_inst_insert,1);
    32 //      DELETE1_SIGNAL( in_INSERT_ACK                                    ,_param->_nb_inst_insert,1);
    33         DELETE1_SIGNAL(out_INSERT_FRONT_END_ID                           ,_param->_nb_inst_insert,_param->_size_front_end_id);
    34         DELETE1_SIGNAL(out_INSERT_CONTEXT_ID                             ,_param->_nb_inst_insert,_param->_size_context_id);
    35         DELETE1_SIGNAL(out_INSERT_TYPE                                   ,_param->_nb_inst_insert,_param->_size_type);
    36         DELETE1_SIGNAL(out_INSERT_OPERATION                              ,_param->_nb_inst_insert,_param->_size_operation);
    37         DELETE1_SIGNAL(out_INSERT_IMMEDIAT                               ,_param->_nb_inst_insert,_param->_size_general_data);
    38 //      DELETE1_SIGNAL(out_INSERT_EXCEPTION_USE                          ,_param->_nb_inst_insert,_param->_size_exception_use);
    39         DELETE1_SIGNAL(out_INSERT_EXCEPTION                              ,_param->_nb_inst_insert,_param->_size_exception);
    40         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW                     ,_param->_nb_inst_insert,_param->_size_special_register);
    41         DELETE1_SIGNAL(out_INSERT_NO_EXECUTE                             ,_param->_nb_inst_insert,1);
    42 
    43         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_VAL                      ,_param->_nb_inst_insert,1);
    44         DELETE1_SIGNAL(out_INSERT_RENAME_SELECT_ACK                      ,_param->_nb_inst_insert,1);
    45         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_FRONT_END_ID             ,_param->_nb_inst_insert,_param->_size_front_end_id);
    46         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_CONTEXT_ID               ,_param->_nb_inst_insert,_param->_size_context_id);
    47         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_TYPE                     ,_param->_nb_inst_insert,_param->_size_type);
    48         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_OPERATION                ,_param->_nb_inst_insert,_param->_size_operation);
    49         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_IMMEDIAT                 ,_param->_nb_inst_insert,_param->_size_general_data);
    50 //      DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION_USE            ,_param->_nb_inst_insert,_param->_size_exception_use);
    51         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION                ,_param->_nb_inst_insert,_param->_size_exception);
    52         DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_NO_EXECUTE               ,_param->_nb_inst_insert,1);
    53 
    54         DELETE1_SIGNAL(out_INSERT_REGISTER_TRANSLATION_VAL               ,_param->_nb_inst_insert,1);
    55         DELETE1_SIGNAL( in_INSERT_REGISTER_TRANSLATION_ACK               ,_param->_nb_inst_insert,1);
    56         DELETE1_SIGNAL(out_INSERT_REGISTER_TRANSLATION_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id);
    57         DELETE1_SIGNAL(out_INSERT_REGISTER_TRANSLATION_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id);
    58         DELETE1_SIGNAL( in_INSERT_REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register);
    59         DELETE1_SIGNAL(out_INSERT_LOAD_STORE_QUEUE_POINTER_VAL           ,_param->_nb_inst_insert,1);
    60         DELETE1_SIGNAL( in_INSERT_LOAD_STORE_QUEUE_POINTER_ACK           ,_param->_nb_inst_insert,1);
    61         DELETE1_SIGNAL(out_INSERT_LOAD_STORE_QUEUE_POINTER_FRONT_END_ID  ,_param->_nb_inst_insert,_param->_size_front_end_id);
    62         DELETE1_SIGNAL(out_INSERT_LOAD_STORE_QUEUE_POINTER_CONTEXT_ID    ,_param->_nb_inst_insert,_param->_size_context_id);
    63         DELETE1_SIGNAL(out_INSERT_LOAD_STORE_QUEUE_POINTER_TYPE          ,_param->_nb_inst_insert,_param->_size_type);
    64         DELETE1_SIGNAL(out_INSERT_LOAD_STORE_QUEUE_POINTER_OPERATION     ,_param->_nb_inst_insert,_param->_size_operation);
    65                                                                          
    66         DELETE1_SIGNAL( in_RETIRE_VAL                                    ,_param->_nb_inst_retire,1);
    67         DELETE1_SIGNAL(out_RETIRE_ACK                                    ,_param->_nb_inst_retire,1);
    68         DELETE1_SIGNAL(out_RETIRE_LOAD_STORE_QUEUE_POINTER_VAL           ,_param->_nb_inst_retire,1);
    69         DELETE1_SIGNAL( in_RETIRE_LOAD_STORE_QUEUE_POINTER_ACK           ,_param->_nb_inst_retire,1);
    70 //      DELETE1_SIGNAL(out_RETIRE_LOAD_STORE_QUEUE_POINTER_TYPE          ,_param->_nb_inst_retire,_param->_size_type);
    71 //      DELETE1_SIGNAL(out_RETIRE_LOAD_STORE_QUEUE_POINTER_OPERATION     ,_param->_nb_inst_retire,_param->_size_operation);
    72         DELETE1_SIGNAL(out_RETIRE_REGISTER_TRANSLATION_VAL               ,_param->_nb_inst_retire,1);
    73         DELETE1_SIGNAL( in_RETIRE_REGISTER_TRANSLATION_ACK               ,_param->_nb_inst_retire,1);
    74 
    75         DELETE2_SIGNAL( in_RETIRE_EVENT_VAL                              ,_param->_nb_front_end,_param->_nb_context[it1],1);
    76         DELETE2_SIGNAL(out_RETIRE_EVENT_ACK                              ,_param->_nb_front_end,_param->_nb_context[it1],1);
    77         DELETE2_SIGNAL(out_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_VAL     ,_param->_nb_front_end,_param->_nb_context[it1],1);
    78         DELETE2_SIGNAL( in_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_ACK     ,_param->_nb_front_end,_param->_nb_context[it1],1);
    79         DELETE2_SIGNAL(out_RETIRE_EVENT_REGISTER_TRANSLATION_VAL         ,_param->_nb_front_end,_param->_nb_context[it1],1);
    80         DELETE2_SIGNAL( in_RETIRE_EVENT_REGISTER_TRANSLATION_ACK         ,_param->_nb_front_end,_param->_nb_context[it1],1);
    81                                                                          
    82         DELETE2_SIGNAL( in_SPR_READ_SR                                   ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_spr);
     31//      DELETE1_SIGNAL     (out_INSERT_VAL                                    ,_param->_nb_inst_insert,1);
     32//      DELETE1_SIGNAL     ( in_INSERT_ACK                                    ,_param->_nb_inst_insert,1);
     33        DELETE1_SIGNAL     (out_INSERT_FRONT_END_ID                           ,_param->_nb_inst_insert,_param->_size_front_end_id);
     34        DELETE1_SIGNAL     (out_INSERT_CONTEXT_ID                             ,_param->_nb_inst_insert,_param->_size_context_id);
     35        DELETE1_SIGNAL_COND(out_INSERT_DEPTH                                  ,_param->_nb_inst_insert,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     36        DELETE1_SIGNAL     (out_INSERT_TYPE                                   ,_param->_nb_inst_insert,_param->_size_type);
     37        DELETE1_SIGNAL     (out_INSERT_OPERATION                              ,_param->_nb_inst_insert,_param->_size_operation);
     38        DELETE1_SIGNAL     (out_INSERT_IMMEDIAT                               ,_param->_nb_inst_insert,_param->_size_general_data);
     39//      DELETE1_SIGNAL     (out_INSERT_EXCEPTION_USE                          ,_param->_nb_inst_insert,_param->_size_exception_use);
     40        DELETE1_SIGNAL     (out_INSERT_EXCEPTION                              ,_param->_nb_inst_insert,_param->_size_exception);
     41        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_PHY_NEW                     ,_param->_nb_inst_insert,_param->_size_special_register);
     42        DELETE1_SIGNAL     (out_INSERT_NO_EXECUTE                             ,_param->_nb_inst_insert,1);
     43                           
     44        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_VAL                      ,_param->_nb_inst_insert,1);
     45        DELETE1_SIGNAL     (out_INSERT_RENAME_SELECT_ACK                      ,_param->_nb_inst_insert,1);
     46        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_FRONT_END_ID             ,_param->_nb_inst_insert,_param->_size_front_end_id);
     47        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_CONTEXT_ID               ,_param->_nb_inst_insert,_param->_size_context_id);
     48        DELETE1_SIGNAL_COND( in_INSERT_RENAME_SELECT_DEPTH                    ,_param->_nb_inst_insert,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     49        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_TYPE                     ,_param->_nb_inst_insert,_param->_size_type);
     50        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_OPERATION                ,_param->_nb_inst_insert,_param->_size_operation);
     51        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_IMMEDIAT                 ,_param->_nb_inst_insert,_param->_size_general_data);
     52//      DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_EXCEPTION_USE            ,_param->_nb_inst_insert,_param->_size_exception_use);
     53        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_EXCEPTION                ,_param->_nb_inst_insert,_param->_size_exception);
     54        DELETE1_SIGNAL     ( in_INSERT_RENAME_SELECT_NO_EXECUTE               ,_param->_nb_inst_insert,1);
     55                           
     56        DELETE1_SIGNAL     (out_INSERT_REGISTER_TRANSLATION_VAL               ,_param->_nb_inst_insert,1);
     57        DELETE1_SIGNAL     ( in_INSERT_REGISTER_TRANSLATION_ACK               ,_param->_nb_inst_insert,1);
     58        DELETE1_SIGNAL     (out_INSERT_REGISTER_TRANSLATION_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id);
     59        DELETE1_SIGNAL     (out_INSERT_REGISTER_TRANSLATION_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id);
     60        DELETE1_SIGNAL_COND(out_INSERT_REGISTER_TRANSLATION_DEPTH             ,_param->_nb_inst_insert,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE);
     61        DELETE1_SIGNAL     ( in_INSERT_REGISTER_TRANSLATION_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register);
     62        DELETE1_SIGNAL     (out_INSERT_LOAD_STORE_QUEUE_POINTER_VAL           ,_param->_nb_inst_insert,1);
     63        DELETE1_SIGNAL     ( in_INSERT_LOAD_STORE_QUEUE_POINTER_ACK           ,_param->_nb_inst_insert,1);
     64        DELETE1_SIGNAL     (out_INSERT_LOAD_STORE_QUEUE_POINTER_FRONT_END_ID  ,_param->_nb_inst_insert,_param->_size_front_end_id);
     65        DELETE1_SIGNAL     (out_INSERT_LOAD_STORE_QUEUE_POINTER_CONTEXT_ID    ,_param->_nb_inst_insert,_param->_size_context_id);
     66        DELETE1_SIGNAL     (out_INSERT_LOAD_STORE_QUEUE_POINTER_TYPE          ,_param->_nb_inst_insert,_param->_size_type);
     67        DELETE1_SIGNAL     (out_INSERT_LOAD_STORE_QUEUE_POINTER_OPERATION     ,_param->_nb_inst_insert,_param->_size_operation);
     68                                                                         
     69        DELETE1_SIGNAL     ( in_RETIRE_VAL                                    ,_param->_nb_inst_retire,1);
     70        DELETE1_SIGNAL     (out_RETIRE_ACK                                    ,_param->_nb_inst_retire,1);
     71        DELETE1_SIGNAL     (out_RETIRE_LOAD_STORE_QUEUE_POINTER_VAL           ,_param->_nb_inst_retire,1);
     72        DELETE1_SIGNAL     ( in_RETIRE_LOAD_STORE_QUEUE_POINTER_ACK           ,_param->_nb_inst_retire,1);
     73//      DELETE1_SIGNAL     (out_RETIRE_LOAD_STORE_QUEUE_POINTER_TYPE          ,_param->_nb_inst_retire,_param->_size_type);
     74//      DELETE1_SIGNAL     (out_RETIRE_LOAD_STORE_QUEUE_POINTER_OPERATION     ,_param->_nb_inst_retire,_param->_size_operation);
     75        DELETE1_SIGNAL     (out_RETIRE_REGISTER_TRANSLATION_VAL               ,_param->_nb_inst_retire,1);
     76        DELETE1_SIGNAL     ( in_RETIRE_REGISTER_TRANSLATION_ACK               ,_param->_nb_inst_retire,1);
     77                           
     78        DELETE2_SIGNAL     ( in_RETIRE_EVENT_VAL                              ,_param->_nb_front_end,_param->_nb_context[it1],1);
     79        DELETE2_SIGNAL     (out_RETIRE_EVENT_ACK                              ,_param->_nb_front_end,_param->_nb_context[it1],1);
     80        DELETE2_SIGNAL     (out_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_VAL     ,_param->_nb_front_end,_param->_nb_context[it1],1);
     81        DELETE2_SIGNAL     ( in_RETIRE_EVENT_LOAD_STORE_QUEUE_POINTER_ACK     ,_param->_nb_front_end,_param->_nb_context[it1],1);
     82        DELETE2_SIGNAL     (out_RETIRE_EVENT_REGISTER_TRANSLATION_VAL         ,_param->_nb_front_end,_param->_nb_context[it1],1);
     83        DELETE2_SIGNAL     ( in_RETIRE_EVENT_REGISTER_TRANSLATION_ACK         ,_param->_nb_front_end,_param->_nb_context[it1],1);
     84                                                                         
     85        DELETE2_SIGNAL     ( in_SPR_READ_SR                                   ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_spr);
    8386      }
    8487    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_insert.cpp

    r123 r139  
    3232        Tcontext_t         FRONT_END_ID       = (_param->_have_port_front_end_id)?PORT_READ(in_INSERT_RENAME_SELECT_FRONT_END_ID [i]):0;
    3333        Tcontext_t         CONTEXT_ID         = (_param->_have_port_context_id  )?PORT_READ(in_INSERT_RENAME_SELECT_CONTEXT_ID   [i]):0;
     34        Tdepth_t           DEPTH              = ((_param->_rat_scheme == RAT_DEPTH_SAVE) and _param->_have_port_depth)?PORT_READ(in_INSERT_RENAME_SELECT_DEPTH [i]):0;
    3435        Ttype_t            TYPE               = PORT_READ(in_INSERT_RENAME_SELECT_TYPE                      [i]);
    3536        Toperation_t       OPERATION          = PORT_READ(in_INSERT_RENAME_SELECT_OPERATION                 [i]);
     
    9798        PORT_WRITE(out_INSERT_LOAD_STORE_QUEUE_POINTER_CONTEXT_ID   [i],CONTEXT_ID        );
    9899          }
     100        if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE))
     101          {
     102        PORT_WRITE(out_INSERT_DEPTH                                 [i],DEPTH             );
     103        PORT_WRITE(out_INSERT_REGISTER_TRANSLATION_DEPTH            [i],DEPTH             );
     104          }
    99105        PORT_WRITE(out_INSERT_TYPE                                  [i],TYPE              );
    100106        PORT_WRITE(out_INSERT_OPERATION                             [i],OPERATION         );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/include/Parameters.h

    r112 r139  
    4545  public : uint32_t             _nb_general_register              ;
    4646  public : uint32_t             _nb_special_register              ;
     47  public : Trat_scheme_t        _rat_scheme                       ;
    4748  public : uint32_t             _nb_reg_free                      ;
    4849  public : uint32_t             _nb_bank                          ;
    49 //   public : uint32_t             _size_read_counter                ;
    50                                                                  
     50//public : uint32_t             _size_read_counter                ;
     51  public : uint32_t          ** _nb_branch_speculated             ;//[nb_front_end][nb_context]
     52                                                 
    5153//public : uint32_t             _size_front_end_id                ;
    5254//public : uint32_t             _size_context_id                  ;   
     
    8587                        uint32_t             nb_general_register              ,
    8688                        uint32_t             nb_special_register              ,
     89                        Trat_scheme_t        rat_scheme                       ,
    8790                        uint32_t             nb_reg_free                      ,
    8891                        uint32_t             nb_bank                          ,
    8992//                      uint32_t             size_read_counter                ,
     93                        uint32_t          ** nb_branch_speculated             ,//[nb_front_end][nb_context]
    9094                        bool                 is_toplevel=false
    9195                        );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/include/Rename_unit.h

    r137 r139  
    8383  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_LAST_EVENT        ;//[nb_front_end][nb_inst_decod]
    8484  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_IS_DELAY_SLOT     ;//[nb_front_end][nb_inst_decod]
     85  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IN_SAVE_RAT          ;//[nb_front_end][nb_inst_decod]
    8586#ifdef DEBUG
    8687  public    : SC_IN (Taddress_t        )  ***  in_RENAME_IN_ADDRESS           ;//[nb_front_end][nb_inst_decod]
     
    163164  public    : SC_IN (Tlsq_ptr_t        )   **  in_RETIRE_STORE_QUEUE_PTR_WRITE;//[nb_inst_retire]
    164165  public    : SC_IN (Tlsq_ptr_t        )   **  in_RETIRE_LOAD_QUEUE_PTR_WRITE ;//[nb_inst_retire]
    165 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RA              ;//[nb_inst_retire]
    166 //   public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RA_PHY       ;//[nb_inst_retire]
    167 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RB              ;//[nb_inst_retire]
    168 //   public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RB_PHY       ;//[nb_inst_retire]
    169 //   public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RC              ;//[nb_inst_retire]
    170 //   public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RC_PHY       ;//[nb_inst_retire]
     166//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RA              ;//[nb_inst_retire]
     167//public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RA_PHY       ;//[nb_inst_retire]
     168//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RB              ;//[nb_inst_retire]
     169//public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RB_PHY       ;//[nb_inst_retire]
     170//public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_READ_RC              ;//[nb_inst_retire]
     171//public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RC_PHY       ;//[nb_inst_retire]
    171172  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_WRITE_RD             ;//[nb_inst_retire]
    172173  public    : SC_IN (Tgeneral_address_t)   **  in_RETIRE_NUM_REG_RD_LOG       ;//[nb_inst_retire]
     
    177178  public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RE_PHY_OLD   ;//[nb_inst_retire]
    178179  public    : SC_IN (Tspecial_address_t)   **  in_RETIRE_NUM_REG_RE_PHY_NEW   ;//[nb_inst_retire]
     180  public    : SC_IN (Tcontrol_t         )  **  in_RETIRE_RESTORE              ;//[nb_inst_retire]
     181  public    : SC_IN (Tcontrol_t         )  **  in_RETIRE_RESTORE_RD_PHY_OLD   ;//[nb_inst_retire]
     182  public    : SC_IN (Tcontrol_t         )  **  in_RETIRE_RESTORE_RE_PHY_OLD   ;//[nb_inst_retire]
    179183
    180184    // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    184188//public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_FLUSH          ;//[nb_front_end][nb_context]
    185189  public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_EVENT_STOP           ;//[nb_front_end][nb_context]
     190  public    : SC_IN (Tevent_type_t     )  ***  in_RETIRE_EVENT_TYPE           ;//[nb_front_end][nb_context]
     191  public    : SC_IN (Tdepth_t          )  ***  in_RETIRE_EVENT_DEPTH          ;//[nb_front_end][nb_context]
    186192
    187193    // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Parameters.cpp

    r112 r139  
    3636                          uint32_t             nb_general_register              ,
    3737                          uint32_t             nb_special_register              ,
     38                          Trat_scheme_t        rat_scheme                       ,
    3839                          uint32_t             nb_reg_free                      ,
    3940                          uint32_t             nb_bank                          ,
    4041//                        uint32_t             size_read_counter                ,
     42                          uint32_t          ** nb_branch_speculated             ,//[nb_front_end][nb_context]
    4143                          bool                 is_toplevel)
    4244  {
     
    5961    _nb_general_register               = nb_general_register              ;
    6062    _nb_special_register               = nb_special_register              ;
     63    _rat_scheme                        = rat_scheme                       ;
    6164    _nb_reg_free                       = nb_reg_free                      ;
    6265    _nb_bank                           = nb_bank                          ;
    63 //     _size_read_counter                 = size_read_counter                ;
    64    
     66//  _size_read_counter                 = size_read_counter                ;
     67    _nb_branch_speculated              = nb_branch_speculated             ;
     68
    6569    uint32_t size_special_register     = log2(_nb_special_register);
    6670
     
    8892       _nb_general_register   ,
    8993       _nb_special_register   ,
     94       _rat_scheme            ,
    9095       _nb_inst_insert        ,
    9196       _nb_inst_retire        ,
    9297       _nb_reg_free           ,
    93        _nb_bank               // ,
    94 //        _size_read_counter     
     98       _nb_bank               ,
     99//        _size_read_counter  ,
     100       _nb_branch_speculated 
    95101       );
    96102
     
    117123       _nb_inst_retire       ,
    118124       _size_general_data    ,
    119        _size_special_register
     125       _size_special_register,
     126       _rat_scheme
    120127       );
    121128
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Parameters_print.cpp

    r112 r139  
    5858
    5959            xml.singleton_begin("link_load_store_unit_with_thread "); xml.attribut("value",toString(_link_load_store_unit_with_thread [i][j])); xml.singleton_end();
     60            xml.singleton_begin("nb_branch_speculated             "); xml.attribut("value",toString(_nb_branch_speculated             [i][j])); xml.singleton_end();
    6061           
    6162            xml. balise_close();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_allocation.cpp

    r137 r139  
    7474      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_LAST_EVENT    ,"last_event"   ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7575      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     76      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_SAVE_RAT      ,"save_rat"     ,Tcontrol_t        ,1                                   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    7677#ifdef DEBUG
    7778      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_ADDRESS       ,"address"      ,Taddress_t        ,_param->_size_instruction_address   , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     
    166167      ALLOC1_SIGNAL_IN ( in_RETIRE_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr       );
    167168      ALLOC1_SIGNAL_IN ( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t        ,_param->_size_load_queue_ptr        );
    168 //       ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RA              ,"read_ra"              ,Tcontrol_t        ,1                                   );
    169 //       ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RA_PHY       ,"num_reg_ra_phy"       ,Tgeneral_address_t,_param->_size_general_register      );
    170 //       ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RB              ,"read_rb"              ,Tcontrol_t        ,1                                   );
    171 //       ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RB_PHY       ,"num_reg_rb_phy"       ,Tgeneral_address_t,_param->_size_general_register      );
    172 //       ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RC              ,"read_rc"              ,Tcontrol_t        ,1                                   );
    173 //       ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RC_PHY       ,"num_reg_rc_phy"       ,Tspecial_address_t,_param->_size_special_register      );
     169//    ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RA              ,"read_ra"              ,Tcontrol_t        ,1                                   );
     170//    ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RA_PHY       ,"num_reg_ra_phy"       ,Tgeneral_address_t,_param->_size_general_register      );
     171//    ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RB              ,"read_rb"              ,Tcontrol_t        ,1                                   );
     172//    ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RB_PHY       ,"num_reg_rb_phy"       ,Tgeneral_address_t,_param->_size_general_register      );
     173//    ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RC              ,"read_rc"              ,Tcontrol_t        ,1                                   );
     174//    ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RC_PHY       ,"num_reg_rc_phy"       ,Tspecial_address_t,_param->_size_special_register      );
    174175      ALLOC1_SIGNAL_IN ( in_RETIRE_WRITE_RD             ,"write_rd"             ,Tcontrol_t        ,1                                   );
    175176      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RD_LOG       ,"num_reg_rd_log"       ,Tgeneral_address_t,_param->_size_general_register_logic);
     
    180181      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_OLD   ,"num_reg_re_phy_old"   ,Tspecial_address_t,_param->_size_special_register      );
    181182      ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW   ,"num_reg_re_phy_new"   ,Tspecial_address_t,_param->_size_special_register      );
     183      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE              ,"restore"              ,Tcontrol_t        ,1                                   );
     184      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE_RD_PHY_OLD   ,"restore_rd_phy_old"   ,Tcontrol_t        ,1                                   );
     185      ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE_RE_PHY_OLD   ,"restore_re_phy_old"   ,Tcontrol_t        ,1                                   );
    182186
    183187      ALLOC1_INTERFACE_END(_param->_nb_inst_retire);
     
    188192      ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]);
    189193
    190       _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL           ,VAL,_param->_nb_front_end, _param->_nb_context[it1]);
    191       _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK           ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
    192       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE         ,"state"                ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
    193 //       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH         ,"flush"                ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
    194       _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STOP          ,"stop"                 ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
     194      _ALLOC2_VALACK_IN      ( in_RETIRE_EVENT_VAL           ,VAL,_param->_nb_front_end, _param->_nb_context[it1]);
     195      _ALLOC2_VALACK_OUT     (out_RETIRE_EVENT_ACK           ,ACK,_param->_nb_front_end, _param->_nb_context[it1]);
     196      _ALLOC2_SIGNAL_IN      ( in_RETIRE_EVENT_STATE         ,"state"                ,Tevent_state_t    ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]);
     197//    _ALLOC2_SIGNAL_IN      ( in_RETIRE_EVENT_FLUSH         ,"flush"                ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
     198      _ALLOC2_SIGNAL_IN      ( in_RETIRE_EVENT_STOP          ,"stop"                 ,Tcontrol_t        ,1                        , _param->_nb_front_end, _param->_nb_context[it1]);
     199      _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_TYPE          ,"type"                 ,Tevent_type_t     ,_param->_size_event_type , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE);
     200      _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_DEPTH         ,"depth"                ,Tdepth_t          ,_param->_size_depth      , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE);
    195201
    196202      ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]);
     
    337343                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_CONTEXT_ID"   );
    338344            if (_param->_have_port_depth)
     345              {
    339346            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_DEPTH"        ,
    340347                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_DEPTH"        );
     348              }
    341349#ifdef STATISTICS
    342350            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_INSTRUCTION"  ,
     
    355363            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT",
    356364                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT");
     365            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_SAVE_RAT"     ,
     366                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_SAVE_RAT"     );
    357367#ifdef DEBUG
    358368            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_ADDRESS"      ,
     
    400410#endif
    401411
     412          if (_param->_have_port_depth and (_param->_rat_scheme != RAT_DEPTH_SAVE))
     413          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_DEPTH",
     414                              dest,"out_INSERT_"    +toString(i)+"_DEPTH");
    402415          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_IS_DELAY_SLOT",
    403416                              dest,"out_INSERT_"    +toString(i)+"_IS_DELAY_SLOT");
    404           if (_param->_have_port_depth)
    405           PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_DEPTH"       ,
    406                               dest,"out_INSERT_"    +toString(i)+"_DEPTH"       );
     417
    407418#ifdef STATISTICS
    408419          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_INSTRUCTION" ,
     
    429440#endif
    430441
     442          COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_SAVE_RAT"  ,
     443                                   dest, "in_RENAME_"    +toString(i)+"_SAVE_RAT"  );
    431444          COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_READ_RA"   ,
    432445                                   dest, "in_RENAME_"    +toString(i)+"_READ_RA"   );
     
    467480          COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+              "_CONTEXT_ID"   ,
    468481                                   dest, "in_INSERT_"    +toString(i)+"_RENAME_SELECT_CONTEXT_ID"   );
     482          if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE))
     483          COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+              "_DEPTH"        ,
     484                                   dest, "in_INSERT_"    +toString(i)+"_RENAME_SELECT_DEPTH"        );
    469485          COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+              "_TYPE"         ,
    470486                                   dest, "in_INSERT_"    +toString(i)+"_RENAME_SELECT_TYPE"         );
     
    540556          COMPONENT_MAP(_component,src , "in_RENAME_"+toString(i)+                     "_CONTEXT_ID"  ,
    541557                                   dest,"out_INSERT_"+toString(i)+"_REGISTER_TRANSLATION_CONTEXT_ID"  );
    542 
     558          if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE))
     559          COMPONENT_MAP(_component,src , "in_RENAME_"+toString(i)+                     "_DEPTH"        ,
     560                                   dest,"out_INSERT_"+toString(i)+"_REGISTER_TRANSLATION_DEPTH"        );
     561
     562          //  in_RENAME_SAVE_RAS          - rename_select
    543563          //  in_RENAME_READ_RA           - rename_select
    544564          //  in_RENAME_NUM_REG_RA_LOG    - rename_select
     
    662682          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW",
    663683                              dest, "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW");
     684          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE"           ,
     685                              dest, "in_RETIRE_"+toString(i)+"_RESTORE"           );
     686          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD",
     687                              dest, "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD");
     688          PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD",
     689                              dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD");
    664690
    665691          dest = _name+"_glue";
     
    696722            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE",
    697723                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE");
     724            if (_param->_rat_scheme == RAT_DEPTH_SAVE)
     725              {
     726            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_TYPE" ,
     727                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_TYPE" );
     728            if (_param->_have_port_depth)
     729            PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_DEPTH",
     730                                dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_DEPTH");
     731              }
     732
    698733          }
    699734
     
    871906          PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_CONTEXT_ID"   ,
    872907                              dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID"   );
     908          if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE))
     909          PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_DEPTH"        ,
     910                              dest,"out_INSERT_"+toString(i)+"_DEPTH"        );
    873911          PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_TYPE"         ,
    874912                              dest,"out_INSERT_"+toString(i)+"_TYPE"         );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_deallocation.cpp

    r137 r139  
    2828        delete    in_NRESET;
    2929
    30         DELETE2_SIGNAL( in_RENAME_IN_VAL               ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    31         DELETE2_SIGNAL(out_RENAME_IN_ACK               ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    32         DELETE2_SIGNAL( in_RENAME_IN_FRONT_END_ID      ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_front_end_id          );
    33         DELETE2_SIGNAL( in_RENAME_IN_CONTEXT_ID        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_context_id            );
    34         DELETE2_SIGNAL( in_RENAME_IN_DEPTH             ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_depth                 );
    35 #ifdef STATISTICS
    36         DELETE2_SIGNAL( in_RENAME_IN_INSTRUCTION       ,_param->_nb_front_end, _param->_nb_inst_decod[it1],32);
    37 #endif
    38         DELETE2_SIGNAL( in_RENAME_IN_TYPE              ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_type                  );
    39         DELETE2_SIGNAL( in_RENAME_IN_OPERATION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation             );
    40         DELETE2_SIGNAL( in_RENAME_IN_NO_EXECUTE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    41 //      DELETE2_SIGNAL( in_RENAME_IN_HAVE_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    42         DELETE2_SIGNAL( in_RENAME_IN_LAST_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    43         DELETE2_SIGNAL( in_RENAME_IN_IS_DELAY_SLOT     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    44 #ifdef DEBUG
    45         DELETE2_SIGNAL( in_RENAME_IN_ADDRESS           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_instruction_address   );
    46 #endif
    47         DELETE2_SIGNAL( in_RENAME_IN_ADDRESS_NEXT      ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_instruction_address   );
    48         DELETE2_SIGNAL( in_RENAME_IN_HAS_IMMEDIAT      ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    49         DELETE2_SIGNAL( in_RENAME_IN_IMMEDIAT          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_data          );
    50         DELETE2_SIGNAL( in_RENAME_IN_READ_RA           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    51         DELETE2_SIGNAL( in_RENAME_IN_NUM_REG_RA        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_register_logic);
    52         DELETE2_SIGNAL( in_RENAME_IN_READ_RB           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    53         DELETE2_SIGNAL( in_RENAME_IN_NUM_REG_RB        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_register_logic);
    54         DELETE2_SIGNAL( in_RENAME_IN_READ_RC           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    55         DELETE2_SIGNAL( in_RENAME_IN_NUM_REG_RC        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_special_register_logic);
    56         DELETE2_SIGNAL( in_RENAME_IN_WRITE_RD          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    57         DELETE2_SIGNAL( in_RENAME_IN_NUM_REG_RD        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_register_logic);
    58         DELETE2_SIGNAL( in_RENAME_IN_WRITE_RE          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
    59         DELETE2_SIGNAL( in_RENAME_IN_NUM_REG_RE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_special_register_logic);
    60         DELETE2_SIGNAL( in_RENAME_IN_EXCEPTION_USE     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_exception_use         );
    61         DELETE2_SIGNAL( in_RENAME_IN_EXCEPTION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_exception             );
     30        DELETE2_SIGNAL     ( in_RENAME_IN_VAL               ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     31        DELETE2_SIGNAL     (out_RENAME_IN_ACK               ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     32        DELETE2_SIGNAL     ( in_RENAME_IN_FRONT_END_ID      ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_front_end_id          );
     33        DELETE2_SIGNAL     ( in_RENAME_IN_CONTEXT_ID        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_context_id            );
     34        DELETE2_SIGNAL     ( in_RENAME_IN_DEPTH             ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_depth                 );
     35#ifdef STATISTICS         
     36        DELETE2_SIGNAL     ( in_RENAME_IN_INSTRUCTION       ,_param->_nb_front_end, _param->_nb_inst_decod[it1],32);
     37#endif                     
     38        DELETE2_SIGNAL     ( in_RENAME_IN_TYPE              ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_type                  );
     39        DELETE2_SIGNAL     ( in_RENAME_IN_OPERATION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation             );
     40        DELETE2_SIGNAL     ( in_RENAME_IN_NO_EXECUTE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     41//      DELETE2_SIGNAL     ( in_RENAME_IN_HAVE_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     42        DELETE2_SIGNAL     ( in_RENAME_IN_LAST_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     43        DELETE2_SIGNAL     ( in_RENAME_IN_IS_DELAY_SLOT     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     44        DELETE2_SIGNAL     ( in_RENAME_IN_SAVE_RAT          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     45#ifdef DEBUG               
     46        DELETE2_SIGNAL     ( in_RENAME_IN_ADDRESS           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_instruction_address   );
     47#endif                     
     48        DELETE2_SIGNAL     ( in_RENAME_IN_ADDRESS_NEXT      ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_instruction_address   );
     49        DELETE2_SIGNAL     ( in_RENAME_IN_HAS_IMMEDIAT      ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     50        DELETE2_SIGNAL     ( in_RENAME_IN_IMMEDIAT          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_data          );
     51        DELETE2_SIGNAL     ( in_RENAME_IN_READ_RA           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     52        DELETE2_SIGNAL     ( in_RENAME_IN_NUM_REG_RA        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_register_logic);
     53        DELETE2_SIGNAL     ( in_RENAME_IN_READ_RB           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     54        DELETE2_SIGNAL     ( in_RENAME_IN_NUM_REG_RB        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_register_logic);
     55        DELETE2_SIGNAL     ( in_RENAME_IN_READ_RC           ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     56        DELETE2_SIGNAL     ( in_RENAME_IN_NUM_REG_RC        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_special_register_logic);
     57        DELETE2_SIGNAL     ( in_RENAME_IN_WRITE_RD          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     58        DELETE2_SIGNAL     ( in_RENAME_IN_NUM_REG_RD        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_general_register_logic);
     59        DELETE2_SIGNAL     ( in_RENAME_IN_WRITE_RE          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1                                   );
     60        DELETE2_SIGNAL     ( in_RENAME_IN_NUM_REG_RE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_special_register_logic);
     61        DELETE2_SIGNAL     ( in_RENAME_IN_EXCEPTION_USE     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_exception_use         );
     62        DELETE2_SIGNAL     ( in_RENAME_IN_EXCEPTION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_exception             );
     63                           
     64        DELETE1_SIGNAL     (out_INSERT_VAL                  ,_param->_nb_inst_insert,1                                   );
     65        DELETE1_SIGNAL     ( in_INSERT_ACK                  ,_param->_nb_inst_insert,1                                   );
     66        DELETE1_SIGNAL     (out_INSERT_FRONT_END_ID         ,_param->_nb_inst_insert,_param->_size_front_end_id          );
     67        DELETE1_SIGNAL     (out_INSERT_CONTEXT_ID           ,_param->_nb_inst_insert,_param->_size_context_id            );
     68        DELETE1_SIGNAL     (out_INSERT_DEPTH                ,_param->_nb_inst_insert,_param->_size_depth                 );
     69#ifdef STATISTICS         
     70        DELETE1_SIGNAL     (out_INSERT_INSTRUCTION          ,_param->_nb_inst_insert,32);
     71#endif                     
     72        DELETE1_SIGNAL     (out_INSERT_TYPE                 ,_param->_nb_inst_insert,_param->_size_type                  );
     73        DELETE1_SIGNAL     (out_INSERT_OPERATION            ,_param->_nb_inst_insert,_param->_size_operation             );
     74        DELETE1_SIGNAL     (out_INSERT_NO_EXECUTE           ,_param->_nb_inst_insert,1                                   );
     75        DELETE1_SIGNAL     (out_INSERT_LAST_EVENT           ,_param->_nb_inst_insert,1                                   );
     76        DELETE1_SIGNAL     (out_INSERT_IS_DELAY_SLOT        ,_param->_nb_inst_insert,1                                   );
     77#ifdef DEBUG               
     78        DELETE1_SIGNAL     (out_INSERT_ADDRESS              ,_param->_nb_inst_insert,_param->_size_instruction_address   );
     79#endif                     
     80        DELETE1_SIGNAL     (out_INSERT_ADDRESS_NEXT         ,_param->_nb_inst_insert,_param->_size_instruction_address   );
     81        DELETE1_SIGNAL     (out_INSERT_HAS_IMMEDIAT         ,_param->_nb_inst_insert,1                                   );
     82        DELETE1_SIGNAL     (out_INSERT_IMMEDIAT             ,_param->_nb_inst_insert,_param->_size_general_data          );
     83        DELETE1_SIGNAL     (out_INSERT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_insert,_param->_size_store_queue_ptr       );
     84        DELETE1_SIGNAL     (out_INSERT_STORE_QUEUE_PTR_READ ,_param->_nb_inst_insert,_param->_size_store_queue_ptr       );
     85        DELETE1_SIGNAL     (out_INSERT_STORE_QUEUE_EMPTY    ,_param->_nb_inst_insert,1                                   );
     86        DELETE1_SIGNAL     (out_INSERT_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_insert,_param->_size_load_queue_ptr        );
     87        DELETE1_SIGNAL     (out_INSERT_EXCEPTION_USE        ,_param->_nb_inst_insert,_param->_size_exception_use         );
     88        DELETE1_SIGNAL     (out_INSERT_EXCEPTION            ,_param->_nb_inst_insert,_param->_size_exception             );
     89        DELETE1_SIGNAL     (out_INSERT_READ_RA              ,_param->_nb_inst_insert,1                                   );
     90#ifdef DEBUG               
     91        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RA_LOG       ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     92#endif                     
     93        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RA_PHY       ,_param->_nb_inst_insert,_param->_size_general_register      );
     94        DELETE1_SIGNAL     (out_INSERT_READ_RB              ,_param->_nb_inst_insert,1                                   );
     95#ifdef DEBUG               
     96        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RB_LOG       ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     97#endif                     
     98        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RB_PHY       ,_param->_nb_inst_insert,_param->_size_general_register      );
     99        DELETE1_SIGNAL     (out_INSERT_READ_RC              ,_param->_nb_inst_insert,1                                   );
     100#ifdef DEBUG               
     101        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RC_LOG       ,_param->_nb_inst_insert,_param->_size_special_register_logic);
     102#endif                     
     103        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RC_PHY       ,_param->_nb_inst_insert,_param->_size_special_register      );
     104        DELETE1_SIGNAL     (out_INSERT_WRITE_RD             ,_param->_nb_inst_insert,1                                   );
     105        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RD_LOG       ,_param->_nb_inst_insert,_param->_size_general_register_logic);
     106        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RD_PHY_OLD   ,_param->_nb_inst_insert,_param->_size_general_register      );
     107        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RD_PHY_NEW   ,_param->_nb_inst_insert,_param->_size_general_register      );
     108        DELETE1_SIGNAL     (out_INSERT_WRITE_RE             ,_param->_nb_inst_insert,1                                   );
     109        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_LOG       ,_param->_nb_inst_insert,_param->_size_special_register_logic);
     110        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_PHY_OLD   ,_param->_nb_inst_insert,_param->_size_special_register      );
     111        DELETE1_SIGNAL     (out_INSERT_NUM_REG_RE_PHY_NEW   ,_param->_nb_inst_insert,_param->_size_special_register      );
     112                           
     113        DELETE1_SIGNAL     ( in_RETIRE_VAL                  ,_param->_nb_inst_retire,1                                   );
     114        DELETE1_SIGNAL     (out_RETIRE_ACK                  ,_param->_nb_inst_retire,1                                   );
     115        DELETE1_SIGNAL     ( in_RETIRE_FRONT_END_ID         ,_param->_nb_inst_retire,_param->_size_front_end_id          );
     116        DELETE1_SIGNAL     ( in_RETIRE_CONTEXT_ID           ,_param->_nb_inst_retire,_param->_size_context_id            );
     117//      DELETE1_SIGNAL     ( in_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type                  );
     118//      DELETE1_SIGNAL     ( in_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation             );
     119        DELETE1_SIGNAL     ( in_RETIRE_USE_STORE_QUEUE      ,_param->_nb_inst_retire,1                                   );
     120        DELETE1_SIGNAL     ( in_RETIRE_USE_LOAD_QUEUE       ,_param->_nb_inst_retire,1                                   );
     121        DELETE1_SIGNAL     ( in_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr       );
     122        DELETE1_SIGNAL     ( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire,_param->_size_load_queue_ptr        );
     123//      DELETE1_SIGNAL     ( in_RETIRE_READ_RA              ,_param->_nb_inst_retire,1                                   );
     124//      DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RA_PHY       ,_param->_nb_inst_retire,_param->_size_general_register      );
     125//      DELETE1_SIGNAL     ( in_RETIRE_READ_RB              ,_param->_nb_inst_retire,1                                   );
     126//      DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RB_PHY       ,_param->_nb_inst_retire,_param->_size_general_register      );
     127//      DELETE1_SIGNAL     ( in_RETIRE_READ_RC              ,_param->_nb_inst_retire,1                                   );
     128//      DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RC_PHY       ,_param->_nb_inst_retire,_param->_size_special_register      );
     129        DELETE1_SIGNAL     ( in_RETIRE_WRITE_RD             ,_param->_nb_inst_retire,1                                   );
     130        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_LOG       ,_param->_nb_inst_retire,_param->_size_general_register_logic);
     131        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_PHY_OLD   ,_param->_nb_inst_retire,_param->_size_general_register      );
     132        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RD_PHY_NEW   ,_param->_nb_inst_retire,_param->_size_general_register      );
     133        DELETE1_SIGNAL     ( in_RETIRE_WRITE_RE             ,_param->_nb_inst_retire,1                                   );
     134        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_LOG       ,_param->_nb_inst_retire,_param->_size_special_register_logic);
     135        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_PHY_OLD   ,_param->_nb_inst_retire,_param->_size_special_register      );
     136        DELETE1_SIGNAL     ( in_RETIRE_NUM_REG_RE_PHY_NEW   ,_param->_nb_inst_retire,_param->_size_special_register      );
     137        DELETE1_SIGNAL     ( in_RETIRE_RESTORE              ,_param->_nb_inst_retire,1);
     138        DELETE1_SIGNAL     ( in_RETIRE_RESTORE_RD_PHY_OLD   ,_param->_nb_inst_retire,1);
     139        DELETE1_SIGNAL     ( in_RETIRE_RESTORE_RE_PHY_OLD   ,_param->_nb_inst_retire,1);
     140                           
     141        DELETE2_SIGNAL     ( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1],1);
     142        DELETE2_SIGNAL     (out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
     143        DELETE2_SIGNAL     ( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
     144//      DELETE2_SIGNAL     ( in_RETIRE_EVENT_FLUSH          ,_param->_nb_front_end, _param->_nb_context[it1],1);
     145        DELETE2_SIGNAL     ( in_RETIRE_EVENT_STOP           ,_param->_nb_front_end, _param->_nb_context[it1],1);
     146        DELETE2_SIGNAL_COND( in_RETIRE_EVENT_TYPE           ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_type,_param->_rat_scheme == RAT_DEPTH_SAVE);
     147        DELETE2_SIGNAL_COND( in_RETIRE_EVENT_DEPTH          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_depth     ,_param->_rat_scheme == RAT_DEPTH_SAVE);
    62148       
    63         DELETE1_SIGNAL(out_INSERT_VAL                  ,_param->_nb_inst_insert,1                                   );
    64         DELETE1_SIGNAL( in_INSERT_ACK                  ,_param->_nb_inst_insert,1                                   );
    65         DELETE1_SIGNAL(out_INSERT_FRONT_END_ID         ,_param->_nb_inst_insert,_param->_size_front_end_id          );
    66         DELETE1_SIGNAL(out_INSERT_CONTEXT_ID           ,_param->_nb_inst_insert,_param->_size_context_id            );
    67         DELETE1_SIGNAL(out_INSERT_DEPTH                ,_param->_nb_inst_insert,_param->_size_depth                 );
    68 #ifdef STATISTICS
    69         DELETE1_SIGNAL(out_INSERT_INSTRUCTION          ,_param->_nb_inst_insert,32);
    70 #endif
    71         DELETE1_SIGNAL(out_INSERT_TYPE                 ,_param->_nb_inst_insert,_param->_size_type                  );
    72         DELETE1_SIGNAL(out_INSERT_OPERATION            ,_param->_nb_inst_insert,_param->_size_operation             );
    73         DELETE1_SIGNAL(out_INSERT_NO_EXECUTE           ,_param->_nb_inst_insert,1                                   );
    74         DELETE1_SIGNAL(out_INSERT_LAST_EVENT           ,_param->_nb_inst_insert,1                                   );
    75         DELETE1_SIGNAL(out_INSERT_IS_DELAY_SLOT        ,_param->_nb_inst_insert,1                                   );
    76 #ifdef DEBUG
    77         DELETE1_SIGNAL(out_INSERT_ADDRESS              ,_param->_nb_inst_insert,_param->_size_instruction_address   );
    78 #endif
    79         DELETE1_SIGNAL(out_INSERT_ADDRESS_NEXT         ,_param->_nb_inst_insert,_param->_size_instruction_address   );
    80         DELETE1_SIGNAL(out_INSERT_HAS_IMMEDIAT         ,_param->_nb_inst_insert,1                                   );
    81         DELETE1_SIGNAL(out_INSERT_IMMEDIAT             ,_param->_nb_inst_insert,_param->_size_general_data          );
    82         DELETE1_SIGNAL(out_INSERT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_insert,_param->_size_store_queue_ptr       );
    83         DELETE1_SIGNAL(out_INSERT_STORE_QUEUE_PTR_READ ,_param->_nb_inst_insert,_param->_size_store_queue_ptr       );
    84         DELETE1_SIGNAL(out_INSERT_STORE_QUEUE_EMPTY    ,_param->_nb_inst_insert,1                                   );
    85         DELETE1_SIGNAL(out_INSERT_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_insert,_param->_size_load_queue_ptr        );
    86         DELETE1_SIGNAL(out_INSERT_EXCEPTION_USE        ,_param->_nb_inst_insert,_param->_size_exception_use         );
    87         DELETE1_SIGNAL(out_INSERT_EXCEPTION            ,_param->_nb_inst_insert,_param->_size_exception             );
    88         DELETE1_SIGNAL(out_INSERT_READ_RA              ,_param->_nb_inst_insert,1                                   );
    89 #ifdef DEBUG
    90         DELETE1_SIGNAL(out_INSERT_NUM_REG_RA_LOG       ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    91 #endif
    92         DELETE1_SIGNAL(out_INSERT_NUM_REG_RA_PHY       ,_param->_nb_inst_insert,_param->_size_general_register      );
    93         DELETE1_SIGNAL(out_INSERT_READ_RB              ,_param->_nb_inst_insert,1                                   );
    94 #ifdef DEBUG
    95         DELETE1_SIGNAL(out_INSERT_NUM_REG_RB_LOG       ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    96 #endif
    97         DELETE1_SIGNAL(out_INSERT_NUM_REG_RB_PHY       ,_param->_nb_inst_insert,_param->_size_general_register      );
    98         DELETE1_SIGNAL(out_INSERT_READ_RC              ,_param->_nb_inst_insert,1                                   );
    99 #ifdef DEBUG
    100         DELETE1_SIGNAL(out_INSERT_NUM_REG_RC_LOG       ,_param->_nb_inst_insert,_param->_size_special_register_logic);
    101 #endif
    102         DELETE1_SIGNAL(out_INSERT_NUM_REG_RC_PHY       ,_param->_nb_inst_insert,_param->_size_special_register      );
    103         DELETE1_SIGNAL(out_INSERT_WRITE_RD             ,_param->_nb_inst_insert,1                                   );
    104         DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_LOG       ,_param->_nb_inst_insert,_param->_size_general_register_logic);
    105         DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_PHY_OLD   ,_param->_nb_inst_insert,_param->_size_general_register      );
    106         DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_PHY_NEW   ,_param->_nb_inst_insert,_param->_size_general_register      );
    107         DELETE1_SIGNAL(out_INSERT_WRITE_RE             ,_param->_nb_inst_insert,1                                   );
    108         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_LOG       ,_param->_nb_inst_insert,_param->_size_special_register_logic);
    109         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_OLD   ,_param->_nb_inst_insert,_param->_size_special_register      );
    110         DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW   ,_param->_nb_inst_insert,_param->_size_special_register      );
    111        
    112         DELETE1_SIGNAL( in_RETIRE_VAL                  ,_param->_nb_inst_retire,1                                   );
    113         DELETE1_SIGNAL(out_RETIRE_ACK                  ,_param->_nb_inst_retire,1                                   );
    114         DELETE1_SIGNAL( in_RETIRE_FRONT_END_ID         ,_param->_nb_inst_retire,_param->_size_front_end_id          );
    115         DELETE1_SIGNAL( in_RETIRE_CONTEXT_ID           ,_param->_nb_inst_retire,_param->_size_context_id            );
    116 //      DELETE1_SIGNAL( in_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type                  );
    117 //      DELETE1_SIGNAL( in_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation             );
    118         DELETE1_SIGNAL( in_RETIRE_USE_STORE_QUEUE      ,_param->_nb_inst_retire,1                                   );
    119         DELETE1_SIGNAL( in_RETIRE_USE_LOAD_QUEUE       ,_param->_nb_inst_retire,1                                   );
    120         DELETE1_SIGNAL( in_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr       );
    121         DELETE1_SIGNAL( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire,_param->_size_load_queue_ptr        );
    122 //         DELETE1_SIGNAL( in_RETIRE_READ_RA              ,_param->_nb_inst_retire,1                                   );
    123 //         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RA_PHY       ,_param->_nb_inst_retire,_param->_size_general_register      );
    124 //         DELETE1_SIGNAL( in_RETIRE_READ_RB              ,_param->_nb_inst_retire,1                                   );
    125 //         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RB_PHY       ,_param->_nb_inst_retire,_param->_size_general_register      );
    126 //         DELETE1_SIGNAL( in_RETIRE_READ_RC              ,_param->_nb_inst_retire,1                                   );
    127 //         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RC_PHY       ,_param->_nb_inst_retire,_param->_size_special_register      );
    128         DELETE1_SIGNAL( in_RETIRE_WRITE_RD             ,_param->_nb_inst_retire,1                                   );
    129         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_LOG       ,_param->_nb_inst_retire,_param->_size_general_register_logic);
    130         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_OLD   ,_param->_nb_inst_retire,_param->_size_general_register      );
    131         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW   ,_param->_nb_inst_retire,_param->_size_general_register      );
    132         DELETE1_SIGNAL( in_RETIRE_WRITE_RE             ,_param->_nb_inst_retire,1                                   );
    133         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_LOG       ,_param->_nb_inst_retire,_param->_size_special_register_logic);
    134         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD   ,_param->_nb_inst_retire,_param->_size_special_register      );
    135         DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW   ,_param->_nb_inst_retire,_param->_size_special_register      );
    136 
    137         DELETE2_SIGNAL( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    138         DELETE2_SIGNAL(out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1],1);
    139         DELETE2_SIGNAL( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state);
    140 //         DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH          ,_param->_nb_front_end, _param->_nb_context[it1],1);
    141         DELETE2_SIGNAL( in_RETIRE_EVENT_STOP           ,_param->_nb_front_end, _param->_nb_context[it1],1);
    142        
    143         DELETE2_SIGNAL(in_SPR_READ_SR                  ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_spr);
     149        DELETE2_SIGNAL     (in_SPR_READ_SR                  ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_spr);
    144150
    145151#ifdef DEBUG_TEST
    146         DELETE0_SIGNAL( in_INFO_ROB_EMPTY  ,1);
     152        DELETE0_SIGNAL     ( in_INFO_ROB_EMPTY  ,1);
    147153#endif
    148154      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/OOO_Engine.h

    r137 r139  
    8282  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_LAST_EVENT                ;//[nb_front_end][nb_inst_decod]
    8383  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_IS_DELAY_SLOT             ;//[nb_front_end][nb_inst_decod]
     84  public    : SC_IN (Tcontrol_t        )  ***  in_RENAME_SAVE_RAT                  ;//[nb_front_end][nb_inst_decod]
    8485#ifdef DEBUG
    8586  public    : SC_IN (Taddress_t        )  ***  in_RENAME_ADDRESS                   ;//[nb_front_end][nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h

    r138 r139  
    6464  public : Tpriority_t           _issue_priority                   ;
    6565  public : Tload_balancing_t     _issue_load_balancing             ;
    66 //   public : bool               ** _table_routing                    ;//[nb_rename_unit][nb_inst_issue]
    67 //   public : bool               ** _table_issue_type                 ;//[nb_inst_issue][nb_type]
     66//public : bool               ** _table_routing                    ;//[nb_rename_unit][nb_inst_issue]
     67//public : bool               ** _table_issue_type                 ;//[nb_inst_issue][nb_type]
    6868    // Reexecute
    6969  public : uint32_t              _size_reexecute_queue             ;
     
    7474  public : uint32_t            * _nb_general_register              ;//[nb_rename_unit]
    7575  public : uint32_t            * _nb_special_register              ;//[nb_rename_unit]
     76  public : Trat_scheme_t       * _rat_scheme                       ;//[nb_rename_unit]
    7677  public : uint32_t            * _nb_reg_free                      ;//[nb_rename_unit]
    7778  public : uint32_t            * _nb_rename_unit_bank              ;//[nb_rename_unit]
    78 //   public : uint32_t            * _size_read_counter                ;//[nb_rename_unit]
     79//public : uint32_t            * _size_read_counter                ;//[nb_rename_unit]
    7980  public : uint32_t            * _nb_load_store_queue              ;//[nb_rename_unit]
    8081  public : uint32_t           ** _size_store_queue                 ;//[nb_rename_unit][nb_load_store_queue]
     
    9495  public : uint32_t           ** _rename_unit_nb_inst_decod                    ;//[nb_rename_unit][nb_front_end]
    9596  public : uint32_t          *** _rename_unit_link_load_store_unit_with_thread ;//[nb_rename_unit][nb_front_end][nb_context]
     97  public : uint32_t          *** _rename_unit_nb_branch_speculated             ;//[nb_rename_unit][nb_front_end][nb_context]
    9698  public : uint32_t            * _rename_unit_size_front_end_id                ;//[nb_rename_unit]
    9799  public : uint32_t            * _rename_unit_size_context_id                  ;//[nb_rename_unit]
     100  public : Trat_scheme_t       * _commit_unit_rat_scheme                       ;//[nb_front_end]
    98101  public : uint32_t              _max_nb_context                               ;
    99102  public : uint32_t              _max_branch_speculated                        ;
     
    171174                        uint32_t            * nb_general_register              ,//[nb_rename_unit]
    172175                        uint32_t            * nb_special_register              ,//[nb_rename_unit]
     176                        Trat_scheme_t       * rat_scheme                       ,//[nb_rename_unit]
    173177                        uint32_t            * nb_reg_free                      ,//[nb_rename_unit]
    174178                        uint32_t            * nb_rename_unit_bank              ,//[nb_rename_unit]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp

    r137 r139  
     1
    12/*
    23 * $Id$
     
    7172      _ALLOC2_SIGNAL_IN ( in_RENAME_LAST_EVENT                ,"LAST_EVENT"                ,Tcontrol_t        ,1                                    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    7273      _ALLOC2_SIGNAL_IN ( in_RENAME_IS_DELAY_SLOT             ,"IS_DELAY_SLOT"             ,Tcontrol_t        ,1                                    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     74      _ALLOC2_SIGNAL_IN ( in_RENAME_SAVE_RAT                  ,"SAVE_RAT"                  ,Tcontrol_t        ,1                                    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    7375#ifdef DEBUG
    7476      _ALLOC2_SIGNAL_IN ( in_RENAME_ADDRESS                   ,"ADDRESS"                   ,Taddress_t        ,_param->_size_instruction_address    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     
    458460                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_IS_DELAY_SLOT",
    459461                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_IS_DELAY_SLOT");
     462                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_SAVE_RAT"     ,
     463                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_SAVE_RAT"     );
    460464#ifdef DEBUG
    461465                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_ADDRESS"      ,
     
    530534            COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_IS_DELAY_SLOT" ,
    531535                                     dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT" );
    532 //             COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_HAVE_EVENT"    ,
    533 //                                      dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT"    );
     536//          COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_HAVE_EVENT"    ,
     537//                                   dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT"    );
    534538            COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_LAST_EVENT"    ,
    535539                                     dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_LAST_EVENT"    );
     
    682686            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_NUM_REG_RE_LOG"       ,
    683687                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RE_LOG"       );
     688            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_RESTORE"              ,
     689                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RESTORE"              );
     690            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_RESTORE_RD_PHY_OLD"   ,
     691                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RESTORE_RD_PHY_OLD"   );
     692            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_RESTORE_RE_PHY_OLD"   ,
     693                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RESTORE_RE_PHY_OLD"   );
    684694          }
    685695
     
    705715                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_STATE",
    706716                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_STATE");
    707 //                     COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_FLUSH",
    708 //                                              dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_FLUSH");
     717//                  COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_FLUSH",
     718//                                           dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_FLUSH");
    709719                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_STOP",
    710720                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_STOP");
     721                    if (_param->_rat_scheme[i] == RAT_DEPTH_SAVE)
     722                      {
     723                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_TYPE",
     724                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_TYPE");
     725                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_DEPTH",
     726                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_DEPTH");
     727                      }
    711728                  }
    712729                x++;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_deallocation.cpp

    r137 r139  
    4141        DELETE2_SIGNAL( in_RENAME_LAST_EVENT                ,_param->_nb_front_end,_param->_nb_inst_decod[it1],1                                    );
    4242        DELETE2_SIGNAL( in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1],1                                    );
     43        DELETE2_SIGNAL( in_RENAME_SAVE_RAT                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1],1                                    );
    4344#ifdef DEBUG
    4445        DELETE2_SIGNAL( in_RENAME_ADDRESS                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_instruction_address    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters.cpp

    r138 r139  
    88#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h"
    99#include "Common/include/Max.h"
     10#include "Behavioural/include/Allocation.h"
    1011
    1112namespace morpheo {
     
    6162                          uint32_t            * nb_general_register              ,//[nb_rename_unit]
    6263                          uint32_t            * nb_special_register              ,//[nb_rename_unit]
     64                          Trat_scheme_t       * rat_scheme                       ,//[nb_rename_unit]
    6365                          uint32_t            * nb_reg_free                      ,//[nb_rename_unit]
    6466                          uint32_t            * nb_rename_unit_bank              ,//[nb_rename_unit]
     
    108110    _issue_priority                    = issue_priority                   ;
    109111    _issue_load_balancing              = issue_load_balancing             ;
    110 //     _table_routing                     = table_routing                    ;
    111 //     _table_issue_type                  = table_issue_type                 ;
     112//  _table_routing                     = table_routing                    ;
     113//  _table_issue_type                  = table_issue_type                 ;
    112114    _size_reexecute_queue              = size_reexecute_queue             ;
    113115    _rename_select_priority            = rename_select_priority           ;
     
    116118    _nb_general_register               = nb_general_register              ;
    117119    _nb_special_register               = nb_special_register              ;
     120    _rat_scheme                        = rat_scheme                       ;
    118121    _nb_reg_free                       = nb_reg_free                      ;
    119122    _nb_rename_unit_bank               = nb_rename_unit_bank              ;
    120 //     _size_read_counter                 = size_read_counter                ;
     123//  _size_read_counter                 = size_read_counter                ;
    121124    _nb_load_store_queue               = nb_load_store_queue              ;
    122125    _size_store_queue                  = size_store_queue                 ;
     
    147150    _rename_unit_nb_inst_decod                    = new uint32_t *  [_nb_rename_unit];
    148151    _rename_unit_link_load_store_unit_with_thread = new uint32_t ** [_nb_rename_unit];
     152    _rename_unit_nb_branch_speculated             = new uint32_t ** [_nb_rename_unit];
    149153   
    150154    for (uint32_t i=0; i<_nb_rename_unit; i++)
     
    156160        _rename_unit_nb_inst_decod                    [i] = new uint32_t   [x];
    157161        _rename_unit_link_load_store_unit_with_thread [i] = new uint32_t * [x];
     162        _rename_unit_nb_branch_speculated             [i] = new uint32_t * [x];
    158163
    159164        // Scan front_end list
     
    164169            _rename_unit_nb_inst_decod [i][j] = _nb_inst_decod [*it];
    165170            _rename_unit_link_load_store_unit_with_thread [i][j] = new uint32_t [_nb_context [*it]];
    166            
     171            _rename_unit_nb_branch_speculated             [i][j] = new uint32_t [_nb_context [*it]];
     172
    167173            for (uint32_t k=0; k<_nb_context [*it]; k++)
    168               _rename_unit_link_load_store_unit_with_thread [i][j][k] = _link_load_store_unit_with_thread [*it][k];
     174              {
     175                _rename_unit_link_load_store_unit_with_thread [i][j][k] = _link_load_store_unit_with_thread [*it][k];
     176                _rename_unit_nb_branch_speculated             [i][j][k] = _nb_branch_speculated             [*it][k];
     177              }
    169178
    170179            ++it;           
     
    188197          }
    189198      }
     199
     200    ALLOC1(_commit_unit_rat_scheme,Trat_scheme_t,_nb_front_end);
     201
     202    for (uint32_t num_front_end=0; num_front_end<_nb_front_end; ++num_front_end)
     203      _commit_unit_rat_scheme [num_front_end] = rat_scheme [_link_rename_unit_with_front_end [num_front_end]];
    190204
    191205    _max_nb_context                = max<uint32_t>(_nb_context,_nb_front_end);
     
    242256       _nb_general_register                           [i],
    243257       _nb_special_register                           [i],
     258       _rat_scheme                                    [i],
    244259       _nb_reg_free                                   [i],
    245        _nb_rename_unit_bank                           [i]// ,
    246 //        _size_read_counter                             [i]
    247        
     260       _nb_rename_unit_bank                           [i],
     261//     _size_read_counter                             [i]
     262       _rename_unit_nb_branch_speculated              [i]
    248263       );
    249264
     
    268283        size_general_register   ,
    269284        size_special_register   ,
     285       _commit_unit_rat_scheme  ,
    270286       _issue_priority          ,
    271287       _issue_load_balancing    ,
     
    396412      {
    397413        for (uint32_t j=0; j<_nb_front_end; j++)
     414          delete [] _rename_unit_nb_branch_speculated           [i][j];
     415        delete [] _rename_unit_nb_branch_speculated             [i];
     416        for (uint32_t j=0; j<_nb_front_end; j++)
    398417          delete [] _rename_unit_link_load_store_unit_with_thread [i][j];
    399        
    400418        delete [] _rename_unit_link_load_store_unit_with_thread [i];
    401419        delete [] _rename_unit_nb_inst_decod                    [i];
     
    403421      }
    404422   
     423    delete [] _rename_unit_nb_branch_speculated            ;
    405424    delete [] _rename_unit_link_load_store_unit_with_thread;
    406425    delete [] _rename_unit_nb_inst_decod                   ;
     
    410429    delete [] _rename_unit_size_context_id                 ;
    411430    delete [] _link_front_end_with_rename_unit             ;
     431
     432    DELETE1(_commit_unit_rat_scheme,_nb_front_end);
    412433
    413434    for (uint32_t i=0; i<_nb_rename_unit; i++)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_print.cpp

    r138 r139  
    7676    str+= toString(MSG_INFORMATION)+"   * nb_special_register                ["+toString(i)+"] : "+toString<uint32_t         >(_nb_special_register              [i])+"\n";//[nb_rename_unit]
    7777    for (uint32_t i=0; i<_nb_rename_unit; ++i)
     78    str+= toString(MSG_INFORMATION)+"   * rat_scheme                         ["+toString(i)+"] : "+toString<uint32_t         >(_rat_scheme                       [i])+"\n";//[nb_rename_unit]
     79    for (uint32_t i=0; i<_nb_rename_unit; ++i)
    7880    str+= toString(MSG_INFORMATION)+"   * nb_reg_free                        ["+toString(i)+"] : "+toString<uint32_t         >(_nb_reg_free                      [i])+"\n";//[nb_rename_unit]
    7981    for (uint32_t i=0; i<_nb_rename_unit; ++i)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/include/Parameters.h

    r138 r139  
    6868  public : uint32_t              * _nb_general_register                           ;//[nb_rename_bloc]
    6969  public : uint32_t              * _nb_special_register                           ;//[nb_rename_bloc]
     70  public : Trat_scheme_t         * _rat_scheme                                    ;//[nb_rename_bloc]
    7071  public : uint32_t              * _nb_reg_free                                   ;//[nb_rename_bloc]
    7172  public : uint32_t              * _nb_rename_unit_bank                           ;//[nb_rename_bloc]
     
    261262  public : uint32_t             ** _ooo_engine_nb_general_register                ;//[nb_ooo_engine][nb_rename_unit]
    262263  public : uint32_t             ** _ooo_engine_nb_special_register                ;//[nb_ooo_engine][nb_rename_unit]
     264  public : Trat_scheme_t        ** _ooo_engine_rat_scheme                         ;//[nb_ooo_engine][nb_rename_unit]
    263265  public : uint32_t             ** _ooo_engine_nb_reg_free                        ;//[nb_ooo_engine][nb_rename_unit]
    264266  public : uint32_t             ** _ooo_engine_nb_rename_unit_bank                ;//[nb_ooo_engine][nb_rename_unit]
     
    405407  uint32_t              * nb_general_register                           ,//[nb_rename_bloc]
    406408  uint32_t              * nb_special_register                           ,//[nb_rename_bloc]
     409  Trat_scheme_t         * rat_scheme                                    ,//[nb_rename_bloc]
    407410  uint32_t              * nb_reg_free                                   ,//[nb_rename_bloc]
    408411  uint32_t              * nb_rename_unit_bank                           ,//[nb_rename_bloc]
    409 //   uint32_t              * size_read_counter                             ,//[nb_rename_bloc]
     412//uint32_t              * size_read_counter                             ,//[nb_rename_bloc]
    410413
    411414  // Read bloc
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Core_allocation.cpp

    r137 r139  
    298298        // out_DECOD_NO_EXECUTE    - ooo_engine. in_RENAME_NO_EXECUTE   
    299299        // out_DECOD_IS_DELAY_SLOT - ooo_engine. in_RENAME_IS_DELAY_SLOT
     300        // out_DECOD_SAVE_RAT      - ooo_engine. in_RENAME_SAVE_RAT     
    300301        // out_DECOD_ADDRESS       - ooo_engine. in_RENAME_ADDRESS     
    301302        // out_DECOD_ADDRESS_NEXT  - ooo_engine. in_RENAME_ADDRESS_NEXT
     
    478479              COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_IS_DELAY_SLOT",
    479480                                       dest,"out_DECOD_"                 +toString(k)+"_IS_DELAY_SLOT");
     481              COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_SAVE_RAT"     ,
     482                                       dest,"out_DECOD_"                 +toString(k)+"_SAVE_RAT"     );
    480483#ifdef DEBUG
    481484              COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_ADDRESS"      ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters.cpp

    r138 r139  
    117117  uint32_t              * nb_general_register                           ,//[nb_rename_bloc]
    118118  uint32_t              * nb_special_register                           ,//[nb_rename_bloc]
     119  Trat_scheme_t         * rat_scheme                                    ,//[nb_rename_bloc]
    119120  uint32_t              * nb_reg_free                                   ,//[nb_rename_bloc]
    120121  uint32_t              * nb_rename_unit_bank                           ,//[nb_rename_bloc]
     
    281282    _nb_general_register                     = nb_general_register                     ;
    282283    _nb_special_register                     = nb_special_register                     ;
     284    _rat_scheme                              = rat_scheme                              ;
    283285    _nb_reg_free                             = nb_reg_free                             ;
    284286    _nb_rename_unit_bank                     = nb_rename_unit_bank                     ;
    285 //     _size_read_counter                       = size_read_counter                       ;
     287//  _size_read_counter                       = size_read_counter                       ;
    286288
    287289    _nb_read_bloc                            = nb_read_bloc                            ;
     
    10591061    ALLOC2(_ooo_engine_nb_general_register                ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    10601062    ALLOC2(_ooo_engine_nb_special_register                ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
     1063    ALLOC2(_ooo_engine_rat_scheme                         ,Trat_scheme_t    ,_nb_ooo_engine,_nb_rename_unit[it1]);
    10611064    ALLOC2(_ooo_engine_nb_reg_free                        ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    10621065    ALLOC2(_ooo_engine_nb_rename_unit_bank                ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
     
    10821085            _ooo_engine_nb_general_register               [i][j] = _nb_general_register               [num_rename_bloc];
    10831086            _ooo_engine_nb_special_register               [i][j] = _nb_special_register               [num_rename_bloc];
     1087            _ooo_engine_rat_scheme                        [i][j] = _rat_scheme                        [num_rename_bloc];
    10841088            _ooo_engine_nb_reg_free                       [i][j] = _nb_reg_free                       [num_rename_bloc];
    10851089            _ooo_engine_nb_rename_unit_bank               [i][j] = _nb_rename_unit_bank               [num_rename_bloc];
     
    21552159       _issue_priority                               [i],
    21562160       _issue_load_balancing                         [i],
    2157 //        _ooo_engine_table_routing                     [i],
    2158 //        _ooo_engine_table_issue_type                  [i],
     2161//     _ooo_engine_table_routing                     [i],
     2162//     _ooo_engine_table_issue_type                  [i],
    21592163       _size_reexecute_queue                         [i],
    21602164       _ooo_engine_rename_select_priority            [i],
     
    21632167       _ooo_engine_nb_general_register               [i],
    21642168       _ooo_engine_nb_special_register               [i],
     2169       _ooo_engine_rat_scheme                        [i],
    21652170       _ooo_engine_nb_reg_free                       [i],
    21662171       _ooo_engine_nb_rename_unit_bank               [i],
     
    24302435    DELETE2(_ooo_engine_nb_rename_unit_bank                         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    24312436    DELETE2(_ooo_engine_nb_reg_free                                 ,_nb_ooo_engine,_nb_rename_unit[it1]);
     2437    DELETE2(_ooo_engine_rat_scheme                                  ,_nb_ooo_engine,_nb_rename_unit[it1]);
    24322438    DELETE2(_ooo_engine_nb_special_register                         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    24332439    DELETE2(_ooo_engine_nb_general_register                         ,_nb_ooo_engine,_nb_rename_unit[it1]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters_print.cpp

    r138 r139  
    8181    str+= toString(MSG_INFORMATION)+"     * nb_general_register                         : "+toString<uint32_t         >(_nb_general_register              [i])+"\n";
    8282    str+= toString(MSG_INFORMATION)+"     * nb_special_register                         : "+toString<uint32_t         >(_nb_special_register              [i])+"\n";
     83    str+= toString(MSG_INFORMATION)+"     * rat_scheme                                  : "+toString<Trat_scheme_t    >(_rat_scheme                       [i])+"\n";
    8384    str+= toString(MSG_INFORMATION)+"     * nb_reg_free                                 : "+toString<uint32_t         >(_nb_reg_free                      [i])+"\n";
    8485    str+= toString(MSG_INFORMATION)+"     * nb_rename_unit_bank                         : "+toString<uint32_t         >(_nb_rename_unit_bank              [i])+"\n";
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/mkf.info

    r137 r139  
    55target_dep      RegisterFile_Monolithic_0.prj   RegisterFile_Monolithic_0_Pack.vhdl RegisterFile_Monolithic_0.vhdl
    66
    7 # RegisterFile_Monolithic_1
    8 target_dep      all     RegisterFile_Monolithic_1.ngc
    9 target_dep      RegisterFile_Monolithic_1.ngc   RegisterFile_Monolithic_1.prj
    10 target_dep      RegisterFile_Monolithic_1.prj   RegisterFile_Monolithic_1_Pack.vhdl RegisterFile_Monolithic_1.vhdl
    11 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/mkf.info

    r138 r139  
    11
    2 # RegisterFile_Multi_Banked_00
    3 target_dep      all     RegisterFile_Multi_Banked_00.ngc
    4 target_dep      RegisterFile_Multi_Banked_00.ngc        RegisterFile_Multi_Banked_00.prj
    5 target_dep      RegisterFile_Multi_Banked_00.prj        RegisterFile_Multi_Banked_00_bank_Pack.vhdl RegisterFile_Multi_Banked_00_bank.vhdl RegisterFile_Multi_Banked_00_Pack.vhdl RegisterFile_Multi_Banked_00_select_3_ports_Pack.vhdl RegisterFile_Multi_Banked_00_select_3_ports.vhdl RegisterFile_Multi_Banked_00.vhdl
     2# RegisterFile_Multi_Banked_0
     3target_dep      all     RegisterFile_Multi_Banked_0.ngc
     4target_dep      RegisterFile_Multi_Banked_0.ngc RegisterFile_Multi_Banked_0.prj
     5target_dep      RegisterFile_Multi_Banked_0.prj RegisterFile_Multi_Banked_0_bank_Pack.vhdl RegisterFile_Multi_Banked_0_bank.vhdl RegisterFile_Multi_Banked_0_Pack.vhdl RegisterFile_Multi_Banked_0_select_1_ports_Pack.vhdl RegisterFile_Multi_Banked_0_select_1_ports.vhdl RegisterFile_Multi_Banked_0_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_0_select_2_ports.vhdl RegisterFile_Multi_Banked_0.vhdl
    66
    7 # RegisterFile_Multi_Banked_01
    8 target_dep      all     RegisterFile_Multi_Banked_01.ngc
    9 target_dep      RegisterFile_Multi_Banked_01.ngc        RegisterFile_Multi_Banked_01.prj
    10 target_dep      RegisterFile_Multi_Banked_01.prj        RegisterFile_Multi_Banked_01_bank_Pack.vhdl RegisterFile_Multi_Banked_01_bank.vhdl RegisterFile_Multi_Banked_01_Pack.vhdl RegisterFile_Multi_Banked_01_select_3_ports_Pack.vhdl RegisterFile_Multi_Banked_01_select_3_ports.vhdl RegisterFile_Multi_Banked_01.vhdl
     7# RegisterFile_Multi_Banked_1
     8target_dep      all     RegisterFile_Multi_Banked_1.ngc
     9target_dep      RegisterFile_Multi_Banked_1.ngc RegisterFile_Multi_Banked_1.prj
     10target_dep      RegisterFile_Multi_Banked_1.prj RegisterFile_Multi_Banked_1_bank_Pack.vhdl RegisterFile_Multi_Banked_1_bank.vhdl RegisterFile_Multi_Banked_1_Pack.vhdl RegisterFile_Multi_Banked_1_select_1_ports_Pack.vhdl RegisterFile_Multi_Banked_1_select_1_ports.vhdl RegisterFile_Multi_Banked_1_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_1_select_2_ports.vhdl RegisterFile_Multi_Banked_1.vhdl
    1111
    12 # RegisterFile_Multi_Banked_02
    13 target_dep      all     RegisterFile_Multi_Banked_02.ngc
    14 target_dep      RegisterFile_Multi_Banked_02.ngc        RegisterFile_Multi_Banked_02.prj
    15 target_dep      RegisterFile_Multi_Banked_02.prj        RegisterFile_Multi_Banked_02_bank_Pack.vhdl RegisterFile_Multi_Banked_02_bank.vhdl RegisterFile_Multi_Banked_02_Pack.vhdl RegisterFile_Multi_Banked_02_select_4_ports_Pack.vhdl RegisterFile_Multi_Banked_02_select_4_ports.vhdl RegisterFile_Multi_Banked_02.vhdl
    16 
    17 # RegisterFile_Multi_Banked_03
    18 target_dep      all     RegisterFile_Multi_Banked_03.ngc
    19 target_dep      RegisterFile_Multi_Banked_03.ngc        RegisterFile_Multi_Banked_03.prj
    20 target_dep      RegisterFile_Multi_Banked_03.prj        RegisterFile_Multi_Banked_03_bank_Pack.vhdl RegisterFile_Multi_Banked_03_bank.vhdl RegisterFile_Multi_Banked_03_Pack.vhdl RegisterFile_Multi_Banked_03_select_4_ports_Pack.vhdl RegisterFile_Multi_Banked_03_select_4_ports.vhdl RegisterFile_Multi_Banked_03.vhdl
    21 
    22 # RegisterFile_Multi_Banked_04
    23 target_dep      all     RegisterFile_Multi_Banked_04.ngc
    24 target_dep      RegisterFile_Multi_Banked_04.ngc        RegisterFile_Multi_Banked_04.prj
    25 target_dep      RegisterFile_Multi_Banked_04.prj        RegisterFile_Multi_Banked_04_bank_Pack.vhdl RegisterFile_Multi_Banked_04_bank.vhdl RegisterFile_Multi_Banked_04_Pack.vhdl RegisterFile_Multi_Banked_04_select_6_ports_Pack.vhdl RegisterFile_Multi_Banked_04_select_6_ports.vhdl RegisterFile_Multi_Banked_04.vhdl
    26 
    27 # RegisterFile_Multi_Banked_05
    28 target_dep      all     RegisterFile_Multi_Banked_05.ngc
    29 target_dep      RegisterFile_Multi_Banked_05.ngc        RegisterFile_Multi_Banked_05.prj
    30 target_dep      RegisterFile_Multi_Banked_05.prj        RegisterFile_Multi_Banked_05_bank_Pack.vhdl RegisterFile_Multi_Banked_05_bank.vhdl RegisterFile_Multi_Banked_05_Pack.vhdl RegisterFile_Multi_Banked_05_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_05_select_2_ports.vhdl RegisterFile_Multi_Banked_05.vhdl
    31 
    32 # RegisterFile_Multi_Banked_06
    33 target_dep      all     RegisterFile_Multi_Banked_06.ngc
    34 target_dep      RegisterFile_Multi_Banked_06.ngc        RegisterFile_Multi_Banked_06.prj
    35 target_dep      RegisterFile_Multi_Banked_06.prj        RegisterFile_Multi_Banked_06_bank_Pack.vhdl RegisterFile_Multi_Banked_06_bank.vhdl RegisterFile_Multi_Banked_06_Pack.vhdl RegisterFile_Multi_Banked_06_select_6_ports_Pack.vhdl RegisterFile_Multi_Banked_06_select_6_ports.vhdl RegisterFile_Multi_Banked_06.vhdl
    36 
    37 # RegisterFile_Multi_Banked_07
    38 target_dep      all     RegisterFile_Multi_Banked_07.ngc
    39 target_dep      RegisterFile_Multi_Banked_07.ngc        RegisterFile_Multi_Banked_07.prj
    40 target_dep      RegisterFile_Multi_Banked_07.prj        RegisterFile_Multi_Banked_07_bank_Pack.vhdl RegisterFile_Multi_Banked_07_bank.vhdl RegisterFile_Multi_Banked_07_Pack.vhdl RegisterFile_Multi_Banked_07_select_1_ports_Pack.vhdl RegisterFile_Multi_Banked_07_select_1_ports.vhdl RegisterFile_Multi_Banked_07_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_07_select_2_ports.vhdl RegisterFile_Multi_Banked_07.vhdl
    41 
    42 # RegisterFile_Multi_Banked_08
    43 target_dep      all     RegisterFile_Multi_Banked_08.ngc
    44 target_dep      RegisterFile_Multi_Banked_08.ngc        RegisterFile_Multi_Banked_08.prj
    45 target_dep      RegisterFile_Multi_Banked_08.prj        RegisterFile_Multi_Banked_08_bank_Pack.vhdl RegisterFile_Multi_Banked_08_bank.vhdl RegisterFile_Multi_Banked_08_Pack.vhdl RegisterFile_Multi_Banked_08_select_11_ports_Pack.vhdl RegisterFile_Multi_Banked_08_select_11_ports.vhdl RegisterFile_Multi_Banked_08_select_22_ports_Pack.vhdl RegisterFile_Multi_Banked_08_select_22_ports.vhdl RegisterFile_Multi_Banked_08.vhdl
    46 
    47 # RegisterFile_Multi_Banked_09
    48 target_dep      all     RegisterFile_Multi_Banked_09.ngc
    49 target_dep      RegisterFile_Multi_Banked_09.ngc        RegisterFile_Multi_Banked_09.prj
    50 target_dep      RegisterFile_Multi_Banked_09.prj        RegisterFile_Multi_Banked_09_bank_Pack.vhdl RegisterFile_Multi_Banked_09_bank.vhdl RegisterFile_Multi_Banked_09_Pack.vhdl RegisterFile_Multi_Banked_09_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_09_select_2_ports.vhdl RegisterFile_Multi_Banked_09_select_3_ports_Pack.vhdl RegisterFile_Multi_Banked_09_select_3_ports.vhdl RegisterFile_Multi_Banked_09_select_4_ports_Pack.vhdl RegisterFile_Multi_Banked_09_select_4_ports.vhdl RegisterFile_Multi_Banked_09.vhdl
    51 
    52 # RegisterFile_Multi_Banked_10
    53 target_dep      all     RegisterFile_Multi_Banked_10.ngc
    54 target_dep      RegisterFile_Multi_Banked_10.ngc        RegisterFile_Multi_Banked_10.prj
    55 target_dep      RegisterFile_Multi_Banked_10.prj        RegisterFile_Multi_Banked_10_bank_Pack.vhdl RegisterFile_Multi_Banked_10_bank.vhdl RegisterFile_Multi_Banked_10_Pack.vhdl RegisterFile_Multi_Banked_10_select_11_ports_Pack.vhdl RegisterFile_Multi_Banked_10_select_11_ports.vhdl RegisterFile_Multi_Banked_10.vhdl
    56 
    57 # RegisterFile_Multi_Banked_11
    58 target_dep      all     RegisterFile_Multi_Banked_11.ngc
    59 target_dep      RegisterFile_Multi_Banked_11.ngc        RegisterFile_Multi_Banked_11.prj
    60 target_dep      RegisterFile_Multi_Banked_11.prj        RegisterFile_Multi_Banked_11_bank_Pack.vhdl RegisterFile_Multi_Banked_11_bank.vhdl RegisterFile_Multi_Banked_11_Pack.vhdl RegisterFile_Multi_Banked_11_select_1_ports_Pack.vhdl RegisterFile_Multi_Banked_11_select_1_ports.vhdl RegisterFile_Multi_Banked_11_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_11_select_2_ports.vhdl RegisterFile_Multi_Banked_11.vhdl
    61 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h

    r137 r139  
    413413    } while (0)
    414414
    415 #define ALLOC1_SIGNAL_IN( sig, name, type, size)                        \
     415#define ALLOC1_SIGNAL_IN_COND( sig, name, type, size, cond)             \
    416416  do                                                                    \
    417417    {                                                                   \
     
    419419      for (uint32_t it1=0; it1<iterator_1; it1++)                       \
    420420        {                                                               \
    421           if (size > 0)                                                 \
    422             {                                                           \
    423               sig [it1] = interface[it1]->set_signal_in <type> (name, size); \
    424             }                                                           \
    425           else                                                          \
    426             {                                                           \
    427               PRINT_SIZE_NUL(_component,interface[it1],name);           \
    428             }                                                           \
    429         }                                                               \
    430     } while (0)
    431 
    432 #define ALLOC1_SIGNAL_OUT(sig, name, type, size)                        \
     421          if (cond)                                                     \
     422            {                                                           \
     423              if (size > 0)                                             \
     424                {                                                       \
     425                  sig [it1] = interface[it1]->set_signal_in <type> (name, size); \
     426                }                                                       \
     427              else                                                      \
     428                {                                                       \
     429                  PRINT_SIZE_NUL(_component,interface[it1],name);       \
     430                }                                                       \
     431            }                                                           \
     432        }                                                               \
     433    } while (0)
     434
     435#define ALLOC1_SIGNAL_OUT_COND(sig, name, type, size, cond)             \
    433436  do                                                                    \
    434437    {                                                                   \
     
    436439      for (uint32_t it1=0; it1<iterator_1; it1++)                       \
    437440        {                                                               \
    438           if (size > 0)                                                 \
    439             {                                                           \
    440               sig [it1] = interface[it1]->set_signal_out<type> (name, size); \
    441             }                                                           \
    442           else                                                          \
    443             {                                                           \
    444               PRINT_SIZE_NUL(_component,interface[it1],name);           \
    445             }                                                           \
    446         }                                                               \
    447     } while (0)
    448 
    449 #define DELETE1_SIGNAL(sig, x1, size)                                   \
    450   do                                                                    \
    451     {                                                                   \
    452       for (uint32_t it1=0; it1<x1; it1++)                               \
    453         {                                                               \
    454           if (size > 0)                                                 \
    455             {                                                           \
    456               delete sig[it1];                                          \
     441          if (cond)                                                     \
     442            {                                                           \
     443              if (size > 0)                                             \
     444                {                                                       \
     445                  sig [it1] = interface[it1]->set_signal_out<type> (name, size); \
     446                }                                                       \
     447              else                                                      \
     448                {                                                       \
     449                  PRINT_SIZE_NUL(_component,interface[it1],name);       \
     450                }                                                       \
     451            }                                                           \
     452        }                                                               \
     453    } while (0)
     454
     455#define ALLOC1_SIGNAL_IN( sig, name, type, size) ALLOC1_SIGNAL_IN_COND( sig, name, type, size,true)
     456#define ALLOC1_SIGNAL_OUT(sig, name, type, size) ALLOC1_SIGNAL_OUT_COND(sig, name, type, size,true)
     457
     458#define DELETE1_SIGNAL_COND(sig, x1, size, cond)                        \
     459  do                                                                    \
     460    {                                                                   \
     461      for (uint32_t it1=0; it1<x1; it1++)                               \
     462        {                                                               \
     463          if (cond)                                                     \
     464            {                                                           \
     465              if (size > 0)                                             \
     466                {                                                       \
     467                  delete sig[it1];                                      \
     468                }                                                       \
    457469            }                                                           \
    458470        }                                                               \
    459471      delete [] sig;                                                    \
    460472    } while (0)
     473
     474#define DELETE1_SIGNAL(sig, x1, size) DELETE1_SIGNAL_COND(sig, x1, size, true)
    461475
    462476#define ALLOC1_FOREIGN_SIGNAL_IN(sig, interface, name, type, size,x1)   \
     
    661675    } while (0)
    662676
    663 #define _ALLOC2_SIGNAL_IN( sig, name, type, size, x1, x2)               \
     677#define _ALLOC2_SIGNAL_IN_COND( sig, name, type, size, x1, x2, cond)    \
    664678  do                                                                    \
    665679    {                                                                   \
     
    670684          for (uint32_t it2=0; it2<x2; it2++)                           \
    671685            {                                                           \
    672               if (size > 0)                                             \
    673                 {                                                       \
    674                   sig [it1][it2] = interface[it1][it2]->set_signal_in <type> (name, size); \
    675                 }                                                       \
    676               else                                                      \
    677                 {                                                       \
    678                   PRINT_SIZE_NUL(_component,interface[it1][it2],name);  \
    679                 }                                                       \
    680             }                                                           \
    681         }                                                               \
    682     } while (0)
    683 
    684 #define _ALLOC2_SIGNAL_OUT( sig, name, type, size, x1, x2)              \
     686              if (cond)                                                 \
     687                {                                                       \
     688                  if (size > 0)                                         \
     689                    {                                                   \
     690                      sig [it1][it2] = interface[it1][it2]->set_signal_in <type> (name, size); \
     691                    }                                                   \
     692                  else                                                  \
     693                    {                                                   \
     694                      PRINT_SIZE_NUL(_component,interface[it1][it2],name); \
     695                    }                                                   \
     696                }                                                       \
     697            }                                                           \
     698        }                                                               \
     699    } while (0)
     700
     701#define _ALLOC2_SIGNAL_OUT_COND( sig, name, type, size, x1, x2, cond)   \
    685702  do                                                                    \
    686703    {                                                                   \
     
    691708          for (uint32_t it2=0; it2<x2; it2++)                           \
    692709            {                                                           \
    693               if (size > 0)                                             \
    694                 {                                                       \
    695                   sig [it1][it2] = interface[it1][it2]->set_signal_out <type> (name, size); \
    696                 }                                                       \
    697               else                                                      \
    698                 {                                                       \
    699                   PRINT_SIZE_NUL(_component,interface[it1][it2],name);  \
    700                 }                                                       \
    701             }                                                           \
    702         }                                                               \
    703     } while (0)
    704 
    705 #define ALLOC2_VAL_ACK_IN( sig, name, type      ) _ALLOC2_VAL_ACK_IN( sig, name, type      , iterator_1, iterator_2)
    706 #define ALLOC2_VAL_ACK_OUT(sig, name, type      ) _ALLOC2_VAL_ACK_OUT(sig, name, type      , iterator_1, iterator_2)
    707 #define ALLOC2_VALACK_IN(  sig,       type      ) _ALLOC2_VALACK_IN(  sig,       type      , iterator_1, iterator_2)
    708 #define ALLOC2_VALACK_OUT( sig,       type      ) _ALLOC2_VALACK_OUT( sig,       type      , iterator_1, iterator_2)
    709 #define ALLOC2_SIGNAL_IN(  sig, name, type, size) _ALLOC2_SIGNAL_IN(  sig, name, type, size, iterator_1, iterator_2)
    710 #define ALLOC2_SIGNAL_OUT( sig, name, type, size) _ALLOC2_SIGNAL_OUT( sig, name, type, size, iterator_1, iterator_2)
    711 
    712 #define DELETE2_SIGNAL(sig, x1,x2, size)                                \
    713   do                                                                    \
    714     {                                                                   \
    715       for (uint32_t it1=0; it1<x1; it1++)                               \
    716         {                                                               \
    717           for (uint32_t it2=0; it2<x2; it2++)                           \
    718             {                                                           \
    719               if (size > 0)                                             \
    720                 {                                                       \
    721                   delete sig[it1][it2];                                 \
     710              if (cond)                                                 \
     711                {                                                       \
     712                  if (size > 0)                                         \
     713                    {                                                   \
     714                      sig [it1][it2] = interface[it1][it2]->set_signal_out <type> (name, size); \
     715                    }                                                   \
     716                  else                                                  \
     717                    {                                                   \
     718                      PRINT_SIZE_NUL(_component,interface[it1][it2],name); \
     719                    }                                                   \
     720                }                                                       \
     721            }                                                           \
     722        }                                                               \
     723    } while (0)
     724
     725#define _ALLOC2_SIGNAL_IN( sig, name, type, size, x1, x2) _ALLOC2_SIGNAL_IN_COND( sig, name, type, size, x1, x2,true)
     726#define _ALLOC2_SIGNAL_OUT(sig, name, type, size, x1, x2) _ALLOC2_SIGNAL_OUT_COND(sig, name, type, size, x1, x2,true)
     727
     728#define ALLOC2_VAL_ACK_IN( sig, name, type      )         _ALLOC2_VAL_ACK_IN( sig, name, type      , iterator_1, iterator_2)
     729#define ALLOC2_VAL_ACK_OUT(sig, name, type      )         _ALLOC2_VAL_ACK_OUT(sig, name, type      , iterator_1, iterator_2)
     730#define ALLOC2_VALACK_IN(  sig,       type      )         _ALLOC2_VALACK_IN(  sig,       type      , iterator_1, iterator_2)
     731#define ALLOC2_VALACK_OUT( sig,       type      )         _ALLOC2_VALACK_OUT( sig,       type      , iterator_1, iterator_2)
     732#define ALLOC2_SIGNAL_IN(  sig, name, type, size)         _ALLOC2_SIGNAL_IN(  sig, name, type, size, iterator_1, iterator_2)
     733#define ALLOC2_SIGNAL_OUT( sig, name, type, size)         _ALLOC2_SIGNAL_OUT( sig, name, type, size, iterator_1, iterator_2)
     734
     735#define DELETE2_SIGNAL_COND(sig, x1,x2, size, cond)                     \
     736  do                                                                    \
     737    {                                                                   \
     738      for (uint32_t it1=0; it1<x1; it1++)                               \
     739        {                                                               \
     740          for (uint32_t it2=0; it2<x2; it2++)                           \
     741            {                                                           \
     742              if (cond)                                                 \
     743                {                                                       \
     744                  if (size > 0)                                         \
     745                    {                                                   \
     746                      delete sig[it1][it2];                             \
     747                    }                                                   \
    722748                }                                                       \
    723749            }                                                           \
     
    726752      delete [] sig;                                                    \
    727753    } while (0)
     754
     755#define DELETE2_SIGNAL(sig, x1,x2, size) DELETE2_SIGNAL_COND(sig, x1,x2, size,true)
    728756
    729757#define ALLOC2_FOREIGN_SIGNAL_IN( sig, interface, name, type, size, x1, x2) \
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h

    r131 r139  
    131131
    132132  public    : bool                  test_map          (bool recursive=true);
    133   private   : bool                  test_map          (uint32_t depth, bool recursive);
     133//private   : bool                  test_map          (bool recursive);
    134134
    135135  public    : void *                get_sc_signal     (std::string component,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h

    r113 r139  
    7979#endif
    8080
    81   public    : bool                  test_map          (uint32_t depth,bool top_level, bool is_behavioural);
    82 //   public    : bool                  test_equi         (uint32_t depth);
     81  public    : bool                  test_map          (bool top_level, bool is_behavioural);
     82//public    : bool                  test_equi         (uint32_t depth);
    8383
    8484#ifdef POSITION
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h

    r135 r139  
    248248#endif
    249249
    250   public    : bool                  test_map             (uint32_t depth, bool top_level, bool is_behavioural);
     250  public    : bool                  test_map             (std::string name_interfaces,
     251                                                          bool        top_level,
     252                                                          bool        is_behavioural);
    251253//public    : bool                  test_equi            (uint32_t depth);
    252254
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h

    r88 r139  
    8080#endif
    8181
    82   public    : bool                  test_map              (uint32_t depth, bool top_level, bool is_behavioural);
    83 //   public    : bool                  test_equi             (uint32_t depth);
     82  public    : bool                  test_map              (bool top_level, bool is_behavioural);
     83//public    : bool                  test_equi             (uint32_t depth);
    8484
    8585  public    : friend std::ostream&       operator<<            (std::ostream& output_stream,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h

    r138 r139  
    9696  public    : bool              presence_testbench      (void);
    9797
    98   public    : bool              test_map                (uint32_t depth, bool top_level, bool is_behavioural);
     98  public    : bool              test_map                (std::string name_interface,
     99                                                         bool        top_level,
     100                                                         bool        is_behavioural);
    99101//public    : bool              test_equi               (uint32_t depth);
    100102
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Stat.h

    r138 r139  
    3737    typedef struct
    3838    {
    39       bool               each_cycle;
     39//    bool               each_cycle;
    4040      counter_t        * variable;
    4141      Stat_binary_tree * expression;
     
    5454    private: std::map<std::string, var_t> * _list_operand;
    5555      // Liste chaîné des expressions
    56     private: std::list<expr_t>            * _list_expr;
     56    private: std::list<expr_t>            * _list_expr_per_cycle;
     57    private: std::list<expr_t>            * _list_expr_per_period;
    5758      // List chaîné des "counters" (seulement pour la désallocation)
    5859    private: std::list<counters_t*>       * _list_counters;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h

    r138 r139  
    120120    } Tmanage_event_t;
    121121
     122  typedef enum
     123    {
     124      RAT_NO_SAVE     , // Rat without save
     125      RAT_ONE_SAVE    , // Rat with one save
     126      RAT_DEPTH_SAVE    // RAT with multiple save (depth)
     127    } Trat_scheme_t;
     128
    122129  //--------------------------------------------------[ instruction ]-----
    123130  class instruction_t
     
    307314  };
    308315
     316  template<> inline std::string toString<morpheo::behavioural::Trat_scheme_t>(const morpheo::behavioural::Trat_scheme_t& x)
     317  {
     318    switch (x)
     319      {
     320      case morpheo::behavioural::RAT_NO_SAVE    : return "rat_no_save"   ; break;
     321      case morpheo::behavioural::RAT_ONE_SAVE   : return "rat_one_save"  ; break;
     322      case morpheo::behavioural::RAT_DEPTH_SAVE : return "rat_depth_save"; break;
     323      default    : return ""      ; break;
     324      }
     325  };
     326
     327  template<> inline morpheo::behavioural::Trat_scheme_t fromString<morpheo::behavioural::Trat_scheme_t>(const std::string& x)
     328  {
     329    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::RAT_NO_SAVE   ))) == 0) or
     330        (x.compare(toString(                      morpheo::behavioural::RAT_NO_SAVE    )) == 0))
     331      return morpheo::behavioural::RAT_NO_SAVE;
     332
     333    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::RAT_ONE_SAVE  ))) == 0) or
     334        (x.compare(toString(                      morpheo::behavioural::RAT_ONE_SAVE   )) == 0))
     335      return morpheo::behavioural::RAT_ONE_SAVE;
     336
     337    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::RAT_DEPTH_SAVE))) == 0) or
     338        (x.compare(toString(                      morpheo::behavioural::RAT_DEPTH_SAVE )) == 0))
     339      return morpheo::behavioural::RAT_DEPTH_SAVE;
     340
     341    throw (ERRORMORPHEO ("fromString","Unknow string : \""+x+"\""));
     342  };
     343
    309344}; // end namespace morpheo             
    310345#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_test_map.cpp

    r97 r139  
    1414#undef  FUNCTION
    1515#define FUNCTION "Component::test_map"
     16  // bool Component::test_map (bool recursive)
     17  // {
     18  //   log_printf(INFO,Behavioural,FUNCTION, "Test port map and interface.");
     19  //   return test_map (0, recursive);
     20  // }
     21
    1622  bool Component::test_map (bool recursive)
    17   {
    18     log_printf(INFO,Behavioural,FUNCTION, "Test port map and interface.");
    19     return test_map (0, recursive);
    20   }
    21 
    22   bool Component::test_map (uint32_t depth, bool recursive)
    2323  {
    2424    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    2525
    26     std::string tab  = morpheo::tab(depth);
     26    // std::string tab  = morpheo::tab(depth);
    2727    std::string name = _entity->get_name();
    2828    bool test_ok = true;
    2929
    3030    bool is_behavioural = _list_component->empty ();
    31     if (is_behavioural)
    32       {
    33         log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a behavioural description",tab.c_str(),name.c_str());
    34       }
    35     else
    36       {
    37         log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a structural description",tab.c_str(),name.c_str());
    38       }
     31    // if (is_behavioural)
     32    //   {
     33    //     log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a behavioural description",tab.c_str(),name.c_str());
     34    //   }
     35    // else
     36    //   {
     37    //     log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a structural description",tab.c_str(),name.c_str());
     38    //   }
    3939
    4040   
    4141    //  log_printf(INFO,Behavioural,FUNCTION, "%s* Test port I/O",tab.c_str());
    4242   
    43     test_ok &= _entity->test_map(depth+1,true,is_behavioural);
     43    test_ok &= _entity->test_map(true,is_behavioural);
    4444   
    4545    //  log_printf(INFO,Behavioural,FUNCTION, "%s* Test all internal component",tab.c_str());
     
    5050      if (((*i)->_instance & INSTANCE_COMPONENT) != 0)
    5151        {
    52           test_ok &= (*i)->_entity->test_map(depth+1,false,is_behavioural);
     52          test_ok &= (*i)->_entity->test_map(false,is_behavioural);
    5353          if (recursive)
    5454            try
    5555              {
    56                 test_ok &= (*i)->_component->test_map(depth+1,recursive);
     56                test_ok &= (*i)->_component->test_map(recursive);
    5757              }
    5858            catch (morpheo::ErrorMorpheo & error)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Entity_test_map.cpp

    r94 r139  
    1515#undef  FUNCTION
    1616#define FUNCTION "Entity::test_map"
    17   bool Entity::test_map (uint32_t depth, bool top_level, bool is_behavioural)
     17  bool Entity::test_map (bool top_level, bool is_behavioural)
    1818  {
    1919    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    2020 
    21     std::string tab=morpheo::tab(depth);
     21    // std::string tab=morpheo::tab(depth);
    2222
    23     log_printf(INFO,Interface,FUNCTION,"%s* Entity \"%s\"",tab.c_str(),_name.c_str());
     23    // log_printf(INFO,Interface,FUNCTION,"%s* Entity \"%s\"",tab.c_str(),_name.c_str());
    2424 
    25     bool _return = _interfaces->test_map(depth+1,top_level, is_behavioural);
    26 
    27 #ifndef DEBUG
    28     if (_return == false)
    29       {
    30         std::cerr << "In entity \"" << _name << "\" (type : \"" << _type << "\"), a lot of port is not connected !" << std::endl;
    31       }
    32 #endif
     25    bool _return = _interfaces->test_map(top_level, is_behavioural);
    3326
    3427    log_printf(FUNC,Behavioural,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_test_map.cpp

    r94 r139  
    1414#undef  FUNCTION
    1515#define FUNCTION "Interface::test_map"
    16   bool Interface::test_map (uint32_t depth, bool top_level, bool is_behavioural)
     16  bool Interface::test_map (std::string name_interfaces, bool top_level, bool is_behavioural)
    1717  {
    1818    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    1919
    20     std::string tab  = morpheo::tab(depth);
     20    // std::string tab  = morpheo::tab(depth);
    2121    bool _return = true;
    2222
    23     log_printf(INFO,Interface,FUNCTION, "%s* Interface \"%s\"",tab.c_str(),_name.c_str());
     23    // log_printf(INFO,Interface,FUNCTION, "%s* Interface \"%s\"",tab.c_str(),_name.c_str());
    2424   
    2525    for (std::list<Signal*>::iterator i  = _list_signal->begin();
    2626         i != _list_signal->end();
    2727         ++i)
    28       _return &= (*i)->test_map(depth+1,top_level, is_behavioural);
     28      _return &= (*i)->test_map(name_interfaces+"."+_name,top_level, is_behavioural);
    2929
    3030    log_printf(FUNC,Behavioural,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_test_map.cpp

    r94 r139  
    1414#undef  FUNCTION
    1515#define FUNCTION "Interfaces::test_map"
    16   bool Interfaces::test_map (uint32_t depth, bool top_level, bool is_behavioural)
     16  bool Interfaces::test_map (bool top_level, bool is_behavioural)
    1717  {
    1818    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    1919
    20     std::string tab  = morpheo::tab(depth);
     20    // std::string tab  = morpheo::tab(depth);
    2121
    2222    bool _return = true;
    2323
    24     log_printf(INFO,Interface,FUNCTION, "%s* Interfaces \"%s\"",tab.c_str(),_name.c_str());
     24    // log_printf(INFO,Interface,FUNCTION, "%s* Interfaces \"%s\"",tab.c_str(),_name.c_str());
    2525   
    2626    for (std::list<Interface_fifo*>::iterator i  = _list_interface->begin();
    2727         i != _list_interface->end();
    2828         ++i)
    29       _return &= (*i)->test_map(depth+1, top_level, is_behavioural);
     29      _return &= (*i)->test_map(_name, top_level, is_behavioural);
    3030
    3131    log_printf(FUNC,Behavioural,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_test_map.cpp

    r94 r139  
    1414#undef  FUNCTION
    1515#define FUNCTION "Signal::test_map"
    16   bool Signal::test_map (uint32_t depth, bool top_level, bool is_behavioural)
     16  bool Signal::test_map (std::string name_interface,bool top_level, bool is_behavioural)
    1717  {
    1818    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    1919
     20    std::string signame = name_interface+"."+_name;
    2021    std::string str     = "";
    21     std::string tab     = morpheo::tab(depth);
     22//  std::string tab     = morpheo::tab(depth);
    2223    bool        _return = true;
    2324
     
    4950                    _return = false;
    5051                   
    51                     str = "Signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
     52                    str = "Signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
    5253                  }
    5354                break;
     
    5859                  {
    5960                    _return = false;
    60                     str = "Signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
     61                    str = "Signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
    6162                  }
    6263                break;
     
    6869                    _return = false;
    6970                   
    70                     str = "Internal signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
     71                    str = "Internal signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
    7172                  }
    7273               
     
    7879                    _return = false;
    7980                   
    80                     str += "Internal signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
     81                    str += "Internal signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
    8182                  }
    8283               
     
    101102                    _return = false;
    102103                   
    103                     str = "Signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
     104                    str = "Signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
    104105                  }
    105106                break;
     
    111112                    _return = false;
    112113                   
    113                     str = "Signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
     114                    str = "Signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
    114115                  }
    115116                break;
     
    121122                    _return = false;
    122123                   
    123                     str = "Internal signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
     124                    str = "Internal signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
    124125                  }
    125126               
     
    131132                    _return = false;
    132133                   
    133                     str += "Internal signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
     134                    str += "Internal signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
    134135                  }
    135136               
     
    143144    if (_return == false)
    144145      {
    145 #ifndef DEBUG
    146         std::cerr << str << std::endl;
    147 #else
    148         log_printf(INFO,Interface,FUNCTION, "%s* %s",tab.c_str(),str.c_str());
    149 #endif
     146        msgError("%s\n",str.c_str());
    150147      }
    151148    else
    152149      {
    153 //      log_printf(INFO,Interface,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),_name.c_str());
     150//      log_printf(INFO,Interface,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),signame.c_str());
    154151      }
    155152
     
    181178//     else
    182179//       {
    183 // //   log_printf(INFO,Behavioural,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),_name.c_str());
     180// //   log_printf(INFO,Behavioural,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),signame.c_str());
    184181//       }
    185182   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat.cpp

    r138 r139  
    55namespace behavioural {
    66
    7   Stat::Stat (std::string name_instance,
    8               std::string name_component,
     7  Stat::Stat (std::string             name_instance,
     8              std::string             name_component,
    99              Parameters_Statistics * param):
    1010    _name_instance         (name_instance),
     
    1616    _generate_file = true;
    1717
    18     _list_operand  = new std::map<std::string, var_t>;
    19     _list_expr     = new std::list<expr_t>;
    20     _list_stat     = new std::list<Stat *>;
    21     _list_counters = new std::list<counters_t *>;
     18    _list_operand         = new std::map<std::string, var_t>;
     19    _list_expr_per_cycle  = new std::list<expr_t>;
     20    _list_expr_per_period = new std::list<expr_t>;
     21    _list_stat            = new std::list<Stat *>;
     22    _list_counters        = new std::list<counters_t *>;
    2223
    23     _cycle         = create_variable("cycle");
    24 //  _cycle         = create_counter("cycle","","");
    25     *_cycle        = 0; // for the first period
     24    _cycle                = create_variable("cycle");
     25//  _cycle                = create_counter("cycle","","");
     26    *_cycle               = 0; // for the first period
    2627  }
    2728
    2829  Stat::Stat (std::string name_instance,
    2930              std::string name_component,
    30               cycle_t nb_cycle_before_begin,
    31               cycle_t period):
     31              cycle_t     nb_cycle_before_begin,
     32              cycle_t     period):
    3233    _name_instance         (name_instance),
    3334    _name_component        (name_component),
     
    3839    _generate_file = true;
    3940
    40     _list_operand  = new std::map<std::string, var_t>;
    41     _list_expr     = new std::list<expr_t>;
    42     _list_stat     = new std::list<Stat *>;
    43     _list_counters = new std::list<counters_t *>;
     41    _list_operand         = new std::map<std::string, var_t>;
     42    _list_expr_per_cycle  = new std::list<expr_t>;
     43    _list_expr_per_period = new std::list<expr_t>;
     44    _list_stat            = new std::list<Stat *>;
     45    _list_counters        = new std::list<counters_t *>;
    4446
    45     _cycle         = create_variable("cycle");
    46 //  _cycle         = create_counter("cycle","","");
    47     *_cycle        = 0; // for the first period
     47    _cycle                = create_variable("cycle");
     48//  _cycle                = create_counter("cycle","","");
     49    *_cycle               = 0; // for the first period
    4850  }
    4951
     
    6365
    6466    // parcourir la liste et desallouer les arbres
    65     for (std::list<expr_t>::iterator i=_list_expr->begin();
    66          i!= _list_expr->end();
     67    for (std::list<expr_t>::iterator i=_list_expr_per_cycle->begin();
     68         i!= _list_expr_per_cycle->end();
    6769         ++i)
    6870      {
    6971        delete i->expression;
    7072      }
    71     delete _list_expr;
     73    delete _list_expr_per_cycle;
     74
     75    for (std::list<expr_t>::iterator i=_list_expr_per_period->begin();
     76         i!= _list_expr_per_period->end();
     77         ++i)
     78      {
     79        delete i->expression;
     80      }
     81    delete _list_expr_per_period;
    7282
    7383    // parcourir la liste et desallouer les arbres
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_create_expr.cpp

    r110 r139  
    1818    expression.variable   = (*_list_operand) [varname].counter;
    1919    expression.expression = string2tree(expr);
    20     expression.each_cycle = each_cycle;
     20//  expression.each_cycle = each_cycle;
    2121
    22     _list_expr->push_back(expression);
     22    if (each_cycle)
     23      _list_expr_per_cycle ->push_back(expression);
     24    else
     25      _list_expr_per_period->push_back(expression);
    2326  }
    2427
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_eval_exprs.cpp

    r81 r139  
    77  {
    88    // parcourir la liste et desallouer les counters
    9     for (std::list<expr_t>::iterator i=_list_expr->begin();
    10          i!= _list_expr->end();
     9    for (std::list<expr_t>::iterator i=_list_expr_per_cycle->begin();
     10         i!= _list_expr_per_cycle->end();
    1111         ++i)
    12       {
    13         if (i->each_cycle == only_each_cycle)
    14           eval_expr (*i);
    15       }
     12      eval_expr (*i);
     13
     14    if (not only_each_cycle)
     15      for (std::list<expr_t>::iterator i=_list_expr_per_period->begin();
     16           i!= _list_expr_per_period->end();
     17           ++i)
     18        eval_expr (*i);
    1619  }
    1720}; 
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_00.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="4" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_03.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_04.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_05.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_06.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w01_07.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="32" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_03.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="32"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="4" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_04.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="64" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="4" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_05.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="16"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_06.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="32" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_07.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="64"/>
    3434    <parameter name="nb_special_register"                   value="32"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_08.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="64" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="2" />
    3637    <parameter name="nb_rename_unit_bank"                   value="2" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x2.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x3.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x5.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x6.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x7.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_2x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x3.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x5.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x6.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x7.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_3x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x5.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x6.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x7.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_4x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x5.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x6.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x7.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_5x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x6.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x7.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_6x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x7.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_7x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x10.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x11.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x12.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x13.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x14.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x15.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-depth_8x9.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_16x_1r_1w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_16x_2r_1w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_1x_12r_6w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_2x_10r_5w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_2x_6r_3w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_2x_8r_4w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_32x_1r_1w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_4x_4r_2w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_4x_6r_3w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_4x_8r_4w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_8x_2r_1w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-regfile_8x_4r_2w.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_128x128.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_128x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_128x32.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_128x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_128x64.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_128x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_16x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_16x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_16x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x128.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x256.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x32.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x64.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_256x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_32x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_32x32.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_32x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_32x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_4x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_64x16.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_64x32.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_64x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_64x64.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_64x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_8x4.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02-rob_8x8.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_03.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_04.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w04_05.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w08_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="512"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="16" />
    3637    <parameter name="nb_rename_unit_bank"                   value="16" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w08_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="512"/>
    3434    <parameter name="nb_special_register"                   value="256"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="16" />
    3637    <parameter name="nb_rename_unit_bank"                   value="16" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w08_03.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8"  />
    3637    <parameter name="nb_rename_unit_bank"                   value="8"  />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x01_w08_04.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8"  />
    3637    <parameter name="nb_rename_unit_bank"                   value="8"  />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_00.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128" />
    3434    <parameter name="nb_special_register"                   value="8" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="8" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_03.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="16" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_04.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="32" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_05.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="32" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w01_06.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="128"/>
    3434    <parameter name="nb_special_register"                   value="32" />
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="1" />
    3637    <parameter name="nb_rename_unit_bank"                   value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w04_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x02_w04_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w04_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8" />
    3637    <parameter name="nb_rename_unit_bank"                   value="8" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w08_01.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="512"/>
    3434    <parameter name="nb_special_register"                   value="256"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="16" />
    3637    <parameter name="nb_rename_unit_bank"                   value="16" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w08_02.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="512"/>
    3434    <parameter name="nb_special_register"                   value="256"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="16" />
    3637    <parameter name="nb_rename_unit_bank"                   value="16" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w08_03.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8"  />
    3637    <parameter name="nb_rename_unit_bank"                   value="8"  />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w08_04.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="256"/>
    3434    <parameter name="nb_special_register"                   value="128"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="8"  />
    3637    <parameter name="nb_rename_unit_bank"                   value="8"  />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w08_05.cfg

    r138 r139  
    3333    <parameter name="nb_general_register"                   value="512"/>
    3434    <parameter name="nb_special_register"                   value="256"/>
     35    <parameter name="rat_scheme"                            value="1" />
    3536    <parameter name="nb_reg_free"                           value="16" />
    3637    <parameter name="nb_rename_unit_bank"                   value="16" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Morpheo-Dhrystone.sim

    r137 r139  
    2222  <parameter  name="simulation_nb_cycle"                    value="1000000" />
    2323  <parameter  name="simulation_nb_instruction"              value="0"       />
     24  <parameter  name="simulation_stop_type"                   value="0"       />
    2425  <parameter  name="simulation_file_with_pid"               value="0"       />
    2526  <parameter  name="simulation_file_with_date"              value="1"       />
  • trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.gen

    r138 r139  
    3939  <parameter name="nb_general_register"                   min="64"  max="1024" step="* 2" default="64"  level="..." description="..." />
    4040  <parameter name="nb_special_register"                   min="4"   max="512"  step="* 2" default="4"   level="..." description="..." />
     41  <parameter name="rat_scheme"                            min="0"   max="2"    step="+ 1" default="1"   level="..." description="..." />
    4142  <parameter name="nb_reg_free"                           min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    4243  <parameter name="nb_rename_unit_bank"                   min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
  • trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.sim

    r138 r139  
    2020  <parameter  name="statistics_period"                      value="0"       />
    2121                                                           
    22   <parameter  name="simulation_nb_cycle"                    value="50000"   />
     22  <parameter  name="simulation_nb_cycle"                    value="0"       />
    2323  <parameter  name="simulation_nb_instruction"              value="0"       />
    2424  <parameter  name="simulation_stop_type"                   value="0"       />
  • trunk/IPs/systemC/processor/Morpheo/Files/debug.cfg

    r138 r139  
    11<?xml version="1.0" encoding="ISO-8859-1" ?>
    22
    3 <core name="Instance_x01_w02_04">
    4 
    5   <parameter name="size_data"                               value="32" />
    6                                                            
    7   <parameter name="dispatch_priority"                       value="1" />
    8   <parameter name="dispatch_load_balancing"                 value="1" />
    9                                                            
    10   <parameter name="nb_icache_port"                          value="1" />
    11   <parameter name="icache_port_priority"                    value="1" />
    12   <parameter name="icache_port_load_balancing"              value="1" />
    13                                                            
    14   <parameter name="nb_dcache_port"                          value="1" />
    15   <parameter name="dcache_port_priority"                    value="1" />
    16   <parameter name="dcache_port_load_balancing"              value="1" />
     3<core name="debug">
    174
    185  <thread id="0">             
     
    218    <parameter name="nb_inst_fetch"                         value="2" />
    229    <parameter name="ras_size_queue"                        value="8" />
    23     <parameter name="upt_size_queue"                        value="8" />
     10    <parameter name="upt_size_queue"                        value="4" />
    2411    <parameter name="ufpt_size_queue"                       value="4" />
    2512
     
    4633    <parameter name="nb_general_register"                   value="128"/>
    4734    <parameter name="nb_special_register"                   value="64" />
     35    <parameter name="rat_scheme"                            value="2" />
    4836    <parameter name="nb_reg_free"                           value="2" />
    4937    <parameter name="nb_rename_unit_bank"                   value="4" />
     
    152140    <parameter name="nb_execute_loop_select"                value="1" />
    153141    <parameter name="size_re_order_buffer"                  value="64"/>
    154     <parameter name="nb_re_order_buffer_bank"               value="8" />
     142    <parameter name="nb_re_order_buffer_bank"               value="8"/>
    155143    <parameter name="retire_ooo_scheme"                     value="0" />
    156144    <parameter name="commit_priority"                       value="1" />
     
    192180
    193181  </execute_loop>
     182
     183  <parameter name="size_data"                               value="32" />
     184                                                           
     185  <parameter name="dispatch_priority"                       value="1" />
     186  <parameter name="dispatch_load_balancing"                 value="1" />
     187                                                           
     188  <parameter name="nb_icache_port"                          value="1" />
     189  <parameter name="icache_port_priority"                    value="1" />
     190  <parameter name="icache_port_load_balancing"              value="1" />
     191                                                           
     192  <parameter name="nb_dcache_port"                          value="1" />
     193  <parameter name="dcache_port_priority"                    value="1" />
     194  <parameter name="dcache_port_load_balancing"              value="1" />
    194195
    195196  <link name="link_context_with_thread"                src="0"     dest="0.0" />
     
    231232
    232233  <link name="link_write_bloc_with_load_store_unit"    src="0"     dest="0"   />
     234
    233235  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="0"   />
    234236  <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="0"   />
     
    244246  <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="1"   />
    245247
    246 
    247248  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
    248249  <link name="link_thread_and_functionnal_unit"        src="0.1"   dest="1"   />
  • trunk/IPs/systemC/processor/Morpheo/Files/debug.sim

    r138 r139  
    2020  <parameter  name="statistics_period"                      value="0"       />
    2121                                                           
    22   <parameter  name="simulation_nb_cycle"                    value="5000" />
     22  <parameter  name="simulation_nb_cycle"                    value="200000" />
    2323  <parameter  name="simulation_nb_instruction"              value="0"       />
    2424  <parameter  name="simulation_stop_type"                   value="0"       />
     
    2828  <parameter  name="debug_level"                            value="2"       />
    2929  <parameter  name="debug_cycle_start"                      value="0"       />
    30   <parameter  name="debug_cycle_stop"                       value="1000"    />
     30  <parameter  name="debug_cycle_stop"                       value="0"       />
    3131  <parameter  name="debug_nb_cycle"                         value="10000000"/>
    3232
     
    6969  <component  name="OOO_Engine_Glue"                        model="systemc" debug="0" />
    7070  <component  name="Reexecute_unit"                         model="systemc" debug="0" />
    71   <component  name="Load_Store_pointer_unit"                model="systemc" debug="1" />
     71  <component  name="Load_Store_pointer_unit"                model="systemc" debug="0" />
    7272  <component  name="Dependency_checking_unit"               model="systemc" debug="0" />
    7373  <component  name="Free_List_unit"                         model="systemc" debug="0" />
    74   <component  name="Register_Address_Translation_unit"      model="systemc" debug="0" />
     74  <component  name="Register_Address_Translation_unit"      model="systemc" debug="1" />
    7575  <component  name="Register_translation_unit_Glue"         model="systemc" debug="0" />
    7676  <component  name="Stat_List_unit"                         model="systemc" debug="0" />
     
    8181  <component  name="Special_Register_unit"                  model="systemc" debug="0" />
    8282  <component  name="OOO_Engine"                             model="systemc" debug="0" />
    83   <component  name="Context_State"                          model="systemc" debug="0" />
     83  <component  name="Context_State"                          model="systemc" debug="1" />
    8484  <component  name="Decod"                                  model="systemc" debug="0" />
    85   <component  name="Decod_queue"                            model="systemc" debug="0" />
     85  <component  name="Decod_queue"                            model="systemc" debug="1" />
    8686  <component  name="Decod_unit"                             model="systemc" debug="0" />
    8787  <component  name="Front_end_Glue"                         model="systemc" debug="0" />
  • trunk/IPs/systemC/processor/Morpheo/Script/add_param.sh

    r138 r139  
    2323#    sed s/\<parameter\ name=\"nb_bypass_memory\"/\<predictor\ id=\"0\"\>\\\n\ \ \ \ \<parameter\ name=\"nb_bypass_memory\"/ ${1};
    2424#    sed s/\<parameter\ name=\"nb_bypass_memory\"/\ \ \<parameter\ name=\"lsu_pht_nb_counter\"\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ value=\"64\"\\/\>\\\n\ \ \ \ \<parameter\ name=\"nb_bypass_memory\"/ ${1};
    25     sed s/\<parameter\ name=\"nb_bypass_memory\"/\<\\/predictor\>\\\n\ \ \ \ \<parameter\ name=\"nb_bypass_memory\"/ ${1};
     25#    sed s/\<parameter\ name=\"nb_bypass_memory\"/\<\\/predictor\>\\\n\ \ \ \ \<parameter\ name=\"nb_bypass_memory\"/ ${1};
    2626
    2727
    28 
    29 #    <predictor id="0">                                     
    30 #      <parameter name="dir_pht_size_counter"                value="2"  />
    31 #      <parameter name="dir_pht_nb_counter"                  value="512"/>
    32 #    </predictor>     
    33 
    34 
     28    sed s/\<parameter\ name=\"nb_reg_free\"/\<parameter\ name=\"rat_scheme\"\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ value=\"1\"\ \\/\>\\\n\ \ \ \ \<parameter\ name=\"nb_reg_free\"/ ${1};
    3529}
    3630
  • trunk/IPs/systemC/processor/Morpheo/Script/distcc_env.sh

    r138 r139  
    4040    export DISTCC_HOSTS="${DISTCC_HOSTS} roll/4,lzo"     ; # serveur recherche               
    4141   #export DISTCC_HOSTS="${DISTCC_HOSTS} rock/2,lzo"     ; # serveur recherche    - g++ 3.4.6
     42    export DISTCC_HOSTS="${DISTCC_HOSTS} waller/2,lzo"   ; # desktop
    4243    export DISTCC_HOSTS="${DISTCC_HOSTS} lin/2,lzo"      ; # desktop
    4344    export DISTCC_HOSTS="${DISTCC_HOSTS} eric/2,lzo"     ; # desktop
     
    4647    export DISTCC_HOSTS="${DISTCC_HOSTS} gamoudi/2,lzo"  ; # desktop
    4748   #export DISTCC_HOSTS="${DISTCC_HOSTS} grunge/2,lzo"   ; # desktop
    48     export DISTCC_HOSTS="${DISTCC_HOSTS} mitra/2,lzo"    ; # desktop
     49   #export DISTCC_HOSTS="${DISTCC_HOSTS} mitra/2,lzo"    ; # desktop
    4950   #export DISTCC_HOSTS="${DISTCC_HOSTS} pronky/2,lzo"   ; # desktop
    5051   #export DISTCC_HOSTS="${DISTCC_HOSTS} babylone/2,lzo" ; # desktop 
  • trunk/IPs/systemC/processor/Morpheo/Script/distexe_env.sh

    r138 r139  
    4040    export DISTEXE_HOSTS="${DISTEXE_HOSTS} roll/1"     ; # serveur recherche               
    4141   #export DISTEXE_HOSTS="${DISTEXE_HOSTS} rock/1"     ; # serveur recherche    - g++ 3.4.6
     42    export DISTEXE_HOSTS="${DISTEXE_HOSTS} waller/1"   ; # desktop
    4243    export DISTEXE_HOSTS="${DISTEXE_HOSTS} lin/1"      ; # desktop
    4344    export DISTEXE_HOSTS="${DISTEXE_HOSTS} eric/1"     ; # desktop
     
    4647    export DISTEXE_HOSTS="${DISTEXE_HOSTS} gamoudi/1"  ; # desktop
    4748   #export DISTEXE_HOSTS="${DISTEXE_HOSTS} grunge/1"   ; # desktop
    48     export DISTEXE_HOSTS="${DISTEXE_HOSTS} mitra/1"    ; # desktop
     49   #export DISTEXE_HOSTS="${DISTEXE_HOSTS} mitra/1"    ; # desktop
    4950   #export DISTEXE_HOSTS="${DISTEXE_HOSTS} pronky/1"   ; # desktop
    5051   #export DISTEXE_HOSTS="${DISTEXE_HOSTS} babylone/1" ; # desktop 
  • trunk/IPs/systemC/processor/Morpheo/TopLevel/src/Morpheo_configuration.cpp

    r138 r139  
    7171       param->_nb_general_register                           ,
    7272       param->_nb_special_register                           ,
     73       param->_rat_scheme                                    ,
    7374       param->_nb_reg_free                                   ,
    7475       param->_nb_rename_unit_bank                           ,
    75 //        param->_size_read_counter                             ,
     76//     param->_size_read_counter                             ,
    7677
    7778       param->_nb_read_bloc                                  ,
Note: See TracChangeset for help on using the changeset viewer.