Changeset 139


Ignore:
Timestamp:
Jul 30, 2010, 4:47:27 PM (16 years ago)
Author:
rosiere
Message:
  • Add test for all configuration
  • RAT : add rat scheme (depth_save)
Location:
trunk
Files:
9536 added
2 deleted
277 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                                  ,
  • trunk/Makefile.flags

    r138 r139  
    5151# VHDL_TESTBENCH        |         |      |       |       |   
    5252# VHDL_TESTBENCH_ASSERT |         |      |       |       |   
    53 # DEBUG=DEBUG_NONE      |         |      |       | X     |  X
     53# DEBUG                 |         |      |       | X     |  X
    5454# DEBUG_MEMORY_LEAK     |         |      |       |       |   
    5555# DEBUG_SIGNAL          |         |      |       |       |   
  • trunk/Makefile.tools_path

    r138 r139  
    1010# LABS
    1111#----------------------------------------------------------
    12 labs_network_ENV                        = export PATH=$${PATH}:/bin:/usr/bin:/users/chaos/kane/Softwares/distcc/bin
    13 labs_network_SYSTEMC_systemc            = /users/chaos/kane/Softwares/systemc
    14 labs_network_SYSTEMC_systemcass         = /users/chaos/kane/Softwares/systemcass
    15 labs_network_SYSTEMC_systemcass_deps    = $(labs_network_SYSTEMC_systemcass)
    16 labs_network_XILINX                     = /users/chaos/kane/Softwares/Xilinx92i
    17 labs_network_XILINX_CORELIB             = /users/chaos/kane/Softwares/XilinxCoreLib
    18 labs_network_MODELTECH                  = /users/chaos/kane/Softwares/modeltech
    19 labs_network_MODELTECH_LICENCE          = /users/soft/mentor/mgls_v8-5_0-5-0.ss5/etc/cust/mgc/license.anacad.2008
    20 labs_network_OR1K_GCC_BASENAME          = or32-elf
     12 labs_network_ENV                       = export PATH=$${PATH}:/bin:/usr/bin:/users/chaos/kane/Softwares/distcc/bin
     13 labs_network_SYSTEMC_systemc           = /users/chaos/kane/Softwares/systemc
     14 labs_network_SYSTEMC_systemcass        = /users/chaos/kane/Softwares/systemcass
     15 labs_network_SYSTEMC_systemcass_deps   = $(labs_network_SYSTEMC_systemcass)
     16 labs_network_XILINX                    = /users/chaos/kane/Softwares/Xilinx92i
     17 labs_network_XILINX_CORELIB            = /users/chaos/kane/Softwares/XilinxCoreLib
     18 labs_network_MODELTECH                 = /users/chaos/kane/Softwares/modeltech
     19 labs_network_MODELTECH_LICENCE         = /users/soft/mentor/mgls_v8-5_0-5-0.ss5/etc/cust/mgc/license.anacad.2008
     20 labs_network_OR1K_GCC_BASENAME         = or32-elf
    2121#labs_network_OR1K_GCC_VERSION          = 4.2.2
    22 labs_network_OR1K_GCC_VERSION           = 3.4.4
    23 labs_network_OR1K                       = /users/chaos/kane/Softwares/$(labs_network_OR1K_GCC_BASENAME)-$(labs_network_OR1K_GCC_VERSION)
    24 labs_network_NEWLIB                     = /users/chaos/kane/Softwares/newlib/$(labs_network_OR1K_GCC_BASENAME)
    25 labs_network_QT                         = /users/chaos/kane/Softwares/qt-x11-opensource-4.2.3
    26 labs_network_EV67_GCC_BASENAME          = alphaev67-unknown-linux-gnu
    27 labs_network_EV67_GCC_VERSION           = 4.3.2
     22 labs_network_OR1K_GCC_VERSION          = 3.4.4
     23 labs_network_OR1K                      = /users/chaos/kane/Softwares/$(labs_network_OR1K_GCC_BASENAME)-$(labs_network_OR1K_GCC_VERSION)
     24 labs_network_NEWLIB                    = /users/chaos/kane/Softwares/newlib/$(labs_network_OR1K_GCC_BASENAME)
     25 labs_network_QT                        = /users/chaos/kane/Softwares/qt-x11-opensource-4.2.3
     26 labs_network_EV67_GCC_BASENAME         = alphaev67-unknown-linux-gnu
     27 labs_network_EV67_GCC_VERSION          = 4.3.2
    2828#labs_network_EV67_GCC_BASENAME         = alpha-unknown-linux-gnu
    2929#labs_network_EV67_GCC_VERSION          = 4.0.2
    30 labs_network_EV67                       = /users/chaos/kane/Softwares/$(labs_network_EV67_GCC_BASENAME)
     30 labs_network_EV67                      = /users/chaos/kane/Softwares/$(labs_network_EV67_GCC_BASENAME)
    3131#labs_network_EV67                      = /users/chaos/kane/Softwares/gcc-4.0.2-glibc-2.3.6/$(labs_network_EV67_GCC_BASENAME)
    3232
    33 labs_local_ENV                          = $(labs_network_ENV)
    34 labs_local_SYSTEMC_systemc              = $(labs_network_SYSTEMC_systemc)
    35 labs_local_SYSTEMC_systemcass           = $(labs_network_SYSTEMC_systemcass)
    36 labs_local_SYSTEMC_systemcass_deps      = $(labs_network_SYSTEMC_systemcass_deps)
    37 labs_local_XILINX                       = $(labs_network_XILINX)
    38 labs_local_XILINX_CORELIB               = $(labs_network_XILINX_CORELIB)
    39 labs_local_MODELTECH                    = $(labs_network_MODELTECH)
    40 labs_local_MODELTECH_LICENCE            = $(labs_network_MODELTECH_LICENCE)
    41 labs_local_OR1K_GCC_BASENAME            = $(labs_network_OR1K_GCC_BASENAME)
    42 labs_local_OR1K_GCC_VERSION             = $(labs_network_OR1K_GCC_VERSION)
    43 labs_local_OR1K                         = $(labs_network_OR1K)
    44 labs_local_NEWLIB                       = $(labs_network_NEWLIB)
    45 labs_local_QT                           = $(labs_network_QT)
    46 labs_local_EV67_GCC_BASENAME            = $(labs_network_EV67_GCC_BASENAME)
    47 labs_local_EV67_GCC_VERSION             = $(labs_network_EV67_GCC_VERSION)
    48 labs_local_EV67                         = $(labs_network_EV67)
     33 labs_local_ENV                         = $(labs_network_ENV)
     34 labs_local_SYSTEMC_systemc             = $(labs_network_SYSTEMC_systemc)
     35 labs_local_SYSTEMC_systemcass          = $(labs_network_SYSTEMC_systemcass)
     36 labs_local_SYSTEMC_systemcass_deps     = $(labs_network_SYSTEMC_systemcass_deps)
     37 labs_local_XILINX                      = $(labs_network_XILINX)
     38 labs_local_XILINX_CORELIB              = $(labs_network_XILINX_CORELIB)
     39 labs_local_MODELTECH                   = $(labs_network_MODELTECH)
     40 labs_local_MODELTECH_LICENCE           = $(labs_network_MODELTECH_LICENCE)
     41 labs_local_OR1K_GCC_BASENAME           = $(labs_network_OR1K_GCC_BASENAME)
     42 labs_local_OR1K_GCC_VERSION            = $(labs_network_OR1K_GCC_VERSION)
     43 labs_local_OR1K                        = $(labs_network_OR1K)
     44 labs_local_NEWLIB                      = $(labs_network_NEWLIB)
     45 labs_local_QT                          = $(labs_network_QT)
     46 labs_local_EV67_GCC_BASENAME           = $(labs_network_EV67_GCC_BASENAME)
     47 labs_local_EV67_GCC_VERSION            = $(labs_network_EV67_GCC_VERSION)
     48 labs_local_EV67                        = $(labs_network_EV67)
    4949
    5050#----------------------------------------------------------
    5151# HOME (mc-mishima)
    5252#----------------------------------------------------------
    53 home_ENV                                = export PATH=$$PATH:/bin:/usr/bin
    54 home_SYSTEMC_systemc                    = /home/data/Tools/systemc-2.2.0
    55 home_SYSTEMC_systemcass                 = /home/data/Tools/systemcass
    56 home_SYSTEMC_systemcass_deps            = $(home_SYSTEMC_systemcass)
    57 home_XILINX                             = /home/data/Tools/Xilinx91i
    58 home_XILINX_CORELIB                     = /home/data/Tools/XilinxCoreLib
    59 home_MODELTECH                          = /home/data/Tools/modelsim/modeltech-6.2b
    60 home_MODELTECH_LICENCE                  = /home/data/Tools/modelsim/license/license_modelsim-SE-6.2b
    61 home_OR1K_GCC_BASENAME                  = or32-elf
    62 home_OR1K_GCC_VERSION                   = 3.4.4
    63 home_OR1K                               = /home/data/Tools/$(home_OR1K_GCC_BASENAME)
    64 home_NEWLIB                             = /home/data/Tools/newlib/$(home_OR1K_GCC_BASENAME)
    65 home_QT                                 = /home/data/Tools/qt
    66 home_EV67_GCC_BASENAME                  =
    67 home_EV67_GCC_VERSION                   =
    68 home_EV67                               =
     53 home_ENV                               = export PATH=$$PATH:/bin:/usr/bin
     54 home_SYSTEMC_systemc                   = /home/data/Tools/systemc-2.2.0
     55 home_SYSTEMC_systemcass                = /home/data/Tools/systemcass
     56 home_SYSTEMC_systemcass_deps           = $(home_SYSTEMC_systemcass)
     57 home_XILINX                            = /home/data/Tools/Xilinx91i
     58 home_XILINX_CORELIB                    = /home/data/Tools/XilinxCoreLib
     59 home_MODELTECH                         = /home/data/Tools/modelsim/modeltech-6.2b
     60 home_MODELTECH_LICENCE                 = /home/data/Tools/modelsim/license/license_modelsim-SE-6.2b
     61 home_OR1K_GCC_BASENAME                 = or32-elf
     62 home_OR1K_GCC_VERSION                  = 3.4.4
     63 home_OR1K                              = /home/data/Tools/$(home_OR1K_GCC_BASENAME)
     64 home_NEWLIB                            = /home/data/Tools/newlib/$(home_OR1K_GCC_BASENAME)
     65 home_QT                                = /home/data/Tools/qt
     66 home_EV67_GCC_BASENAME                 =
     67 home_EV67_GCC_VERSION                  =
     68 home_EV67                              =
    6969
    7070#----------------------------------------------------------
    7171# Path
    7272#----------------------------------------------------------
    73 ENV                                     = $($(MORPHEO_LOCALIZATION)_ENV)
    74 SYSTEMC_systemc                         = $($(MORPHEO_LOCALIZATION)_SYSTEMC_systemc)
    75 SYSTEMC_systemcass                      = $($(MORPHEO_LOCALIZATION)_SYSTEMC_systemcass)
    76 SYSTEMC_systemcass_deps                 = $($(MORPHEO_LOCALIZATION)_SYSTEMC_systemcass_deps)
    77 XILINX                                  = $($(MORPHEO_LOCALIZATION)_XILINX)
    78 XILINX_CORELIB                          = $($(MORPHEO_LOCALIZATION)_XILINX_CORELIB)
    79 MODELTECH                               = $($(MORPHEO_LOCALIZATION)_MODELTECH)
    80 MODELTECH_LICENCE                       = $($(MORPHEO_LOCALIZATION)_MODELTECH_LICENCE)
    81 OR1K_GCC_BASENAME                       = $($(MORPHEO_LOCALIZATION)_OR1K_GCC_BASENAME)
    82 OR1K_GCC_VERSION                        = $($(MORPHEO_LOCALIZATION)_OR1K_GCC_VERSION)
    83 OR1K                                    = $($(MORPHEO_LOCALIZATION)_OR1K)
    84 NEWLIB                                  = $($(MORPHEO_LOCALIZATION)_NEWLIB)
    85 QT                                      = $($(MORPHEO_LOCALIZATION)_QT)
    86 EV67_GCC_BASENAME                       = $($(MORPHEO_LOCALIZATION)_EV67_GCC_BASENAME)
    87 EV67_GCC_VERSION                        = $($(MORPHEO_LOCALIZATION)_EV67_GCC_VERSION)
    88 EV67                                    = $($(MORPHEO_LOCALIZATION)_EV67)
     73 ENV                                    = $($(MORPHEO_LOCALIZATION)_ENV)
     74 SYSTEMC_systemc                        = $($(MORPHEO_LOCALIZATION)_SYSTEMC_systemc)
     75 SYSTEMC_systemcass                     = $($(MORPHEO_LOCALIZATION)_SYSTEMC_systemcass)
     76 SYSTEMC_systemcass_deps                = $($(MORPHEO_LOCALIZATION)_SYSTEMC_systemcass_deps)
     77 XILINX                                 = $($(MORPHEO_LOCALIZATION)_XILINX)
     78 XILINX_CORELIB                         = $($(MORPHEO_LOCALIZATION)_XILINX_CORELIB)
     79 MODELTECH                              = $($(MORPHEO_LOCALIZATION)_MODELTECH)
     80 MODELTECH_LICENCE                      = $($(MORPHEO_LOCALIZATION)_MODELTECH_LICENCE)
     81 OR1K_GCC_BASENAME                      = $($(MORPHEO_LOCALIZATION)_OR1K_GCC_BASENAME)
     82 OR1K_GCC_VERSION                       = $($(MORPHEO_LOCALIZATION)_OR1K_GCC_VERSION)
     83 OR1K                                   = $($(MORPHEO_LOCALIZATION)_OR1K)
     84 NEWLIB                                 = $($(MORPHEO_LOCALIZATION)_NEWLIB)
     85 QT                                     = $($(MORPHEO_LOCALIZATION)_QT)
     86 EV67_GCC_BASENAME                      = $($(MORPHEO_LOCALIZATION)_EV67_GCC_BASENAME)
     87 EV67_GCC_VERSION                       = $($(MORPHEO_LOCALIZATION)_EV67_GCC_VERSION)
     88 EV67                                   = $($(MORPHEO_LOCALIZATION)_EV67)
  • trunk/Platforms/Test/Makefile

    r137 r139  
    4848PATH_INC                        =       include
    4949PATH_SRC                        =       src
    50 PATH_OBJ                        =       $(MORPHEO_TMP)/obj
    51 PATH_LIB                        =       $(MORPHEO_PREFIX)/lib
    52 PATH_BIN                        =       $(MORPHEO_PREFIX)/bin
     50PATH_OBJ                        =       $(MORPHEO_TMP)/obj/$(MORPHEO_TYPE)
     51PATH_LIB                        =       $(MORPHEO_PREFIX)/lib/$(MORPHEO_TYPE)
     52PATH_BIN                        =       $(MORPHEO_PREFIX)/bin/$(MORPHEO_TYPE)
    5353PATH_LOG                        =       $(MORPHEO_TMP)/log
    5454PATH_GMON                       =       $(MORPHEO_TMP)/gmon
    5555PATH_DATA                       =       ./data
     56PATH_DATA_CFG                   =       $(PATH_DATA)/cfg
    5657PATH_LOGS                       =       $(patsubst $(PATH_DATA)/%,$(PATH_LOG)/%,$(wildcard $(PATH_DATA)/*))
     58PATH_CFG_SUFFIX                 =       IPs/systemC/processor/Morpheo/Files
     59PATH_CFG                        =       $(MORPHEO_TOPLEVEL)/$(PATH_CFG_SUFFIX)
    5760
    5861PATH_SOFT                       =       $(MORPHEO_TOPLEVEL)/Softwares
    … …  
    8083BIN                             =       Platforms_Test.x
    8184EXEC                            =       $(PATH_BIN)/$(BIN)
    82 EXEC_PREFIX                     =       $(NICE) -n $(PRIORITY) 
     85EXEC_PREFIX                     =       $(NICE) -n $(PRIORITY)
    8386#$(VALGRIND)
    8487EXEC_PARAMS                     =       $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR_SYSTEMC))
    … …  
    125128$(PATH_BIN)/%.x                 :  $(PATH_OBJ) $(PATH_BIN)
    126129                                @\
    127                                 $(ECHO) "Linkage            : $*";\
    128130                                case "${SIMULATOR_SYSTEMC}" in                                                          \
    129131                                    "modelsim")                                                                 \
    … …  
    139141                                    *)                                                                          \
    140142                                        $(MAKE) $(OBJECTS);                                                     \
     143                                        $(ECHO) "Linkage            : $*";                                      \
    141144                                        $(CXX) $(PLATFORMS_L_FLAGS) -o $@ $(OBJECTS) $(LIBNAME);                \
    142145                                        ;;                                                                      \
    … …  
    149152                                        $(RM) $(PATH_LOG)/$(DATA);                                                      \
    150153                                fi;                                                                                     \
    151                                 declare logs="$(LOGS)";                                                                 \
    152                                 $(MAKE) $${logs};                                                                       \
    153                                 declare -i nb_test=0;                                                                   \
     154                                declare -a logs=($(LOGS));                                                              \
     155                                declare -i nb_test=$${#logs[*]};                                                        \
     156                                $(ECHO) "-------------------| Run $${nb_test} test(s)";                                 \
     157                                $(MAKE) $${logs[*]};                                                                    \
    154158                                declare -i nb_test_ko=0;                                                                \
    155                                 for log in $${logs}; do                                                                 \
     159                                for log in $${logs[*]}; do                                                              \
    156160                                        $(GREP) -q "Test OK" $$log;                                                     \
    157161                                        declare -i test_ok=$$?;                                                         \
    … …  
    161165                                        then nb_test_ko=$$(($${nb_test_ko} + 1));                                       \
    162166                                        fi;                                                                             \
    163                                         nb_test=$$(($${nb_test} + 1));                                                  \
    164167                                done;                                                                                   \
    165168                                if $(TEST) $${nb_test_ko} -ne 0;                                                        \
    … …  
    184187                                for log in $(LOGS); do                                                  \
    185188                                        $(ECHO) -n ".";                                                 \
    186                                         $(ECHO) -n "cd $(MORPHEO_TOPLEVEL); source environment.sh; cd -; path=\"${PWD}\"; " >> $(SCRIPT);\
     189                                        $(ECHO) -n "source $(MORPHEO_TOPLEVEL)/environment.sh $(MORPHEO_LOCALIZATION); path=\"${PWD}\"; " >> $(SCRIPT);\
    187190                                        if $(TEST) $(CLEAN) -ne 0; then                                 \
    188191                                                $(ECHO) -n "$(RM) $${log}; " >> $(SCRIPT);              \
    … …  
    201204                                $(ECHO) "Run                : $*";                      \
    202205                                \
    203                                 file_gmon=$$($(BASENAME) $*);                           \
    204                                 dir_gmon=$$($(DIRNAME) $*);                             \
     206                                file_gmon="$$($(BASENAME) $*)-$$($(DATE))";             \
     207                                dir_gmon="$$($(DIRNAME) $*)";                           \
    205208                                $(MKDIR) $(PATH_GMON)/$$dir_gmon;                       \
    206209                                export GMON_OUT_PREFIX=$(PATH_GMON)/$$dir_gmon/$$file_gmon;\
    … …  
    219222                                echo "{$$($(date))} $* $${test} $${timing}" >> $$($(DIRNAME) $*).res;\
    220223
     224cfg                             : $(PATH_DATA_CFG)
     225                                @\
     226                                $(ECHO) "Create configuration file";                                                                            \
     227                                for file_cfg in $(PATH_CFG)/*.cfg; do                                                                           \
     228                                        file_data=$(PATH_DATA_CFG)/$$($(BASENAME) $${file_cfg});                                                \
     229                                        $(ECHO) "  * $${file_data}";                                                                            \
     230                                        $(ECHO) '$${MORPHEO_TOPLEVEL}'"/$(PATH_CFG_SUFFIX)/debug.sim"                        > $${file_data};   \
     231                                        $(ECHO) '$${MORPHEO_TOPLEVEL}'"/$(PATH_CFG_SUFFIX)/Morpheo.gen"                     >> $${file_data};   \
     232                                        $(ECHO) '$${MORPHEO_TOPLEVEL}'"/$(PATH_CFG_SUFFIX)/$$($(BASENAME) $${file_cfg})"    >> $${file_data};   \
     233                                        $(ECHO) '$${MORPHEO_TOPLEVEL}'"/Softwares/Test/Test_x000/bin/soft_NEWLIB_MORPHEO.x" >> $${file_data};   \
     234                                        $(ECHO) "0"                                                                        >> $${file_data};    \
     235                                        $(ECHO) "0"                                                                        >> $${file_data};    \
     236                                        $(ECHO) "4096"                                                                     >> $${file_data};    \
     237                                        $(ECHO) "2"                                                                        >> $${file_data};    \
     238                                done;
     239
    221240#-----[ Library + Software ]-------------------------------
    222241
    … …  
    240259                                $(CXX) $(PLATFORMS_CXX_FLAGS) -c -o $@ $<;
    241260
    242 $(PATH_OBJ) $(PATH_BIN) $(PATH_LOGS) $(PATH_GMON) :
     261$(PATH_OBJ) $(PATH_BIN) $(PATH_LOGS) $(PATH_GMON) $(PATH_DATA_CFG) :
    243262                                @\
    244263                                $(ECHO) "Create directory   : $@";\
    … …  
    251270                                $(ECHO) "Delete     temporary files in directory $(PWD)";\
    252271                                $(RM)   $(OBJECTS);\
    253                                 $(RM)   $(EXEC);\
    254272                                $(RM)   $(PATH_LOGS); \
    255273                                $(RM)   $(PATH_GMON); \
    … …  
    286304                                $(ECHO) " * bench               : cf 'make run DATA=bench'";\
    287305                                $(ECHO) " * distexe             : Generate an command file to distexe. It's as run command, but just generate an script with all make";\
     306                                $(ECHO) " * cfg                 : For each configuration in \"${PATH_CFG}\", create basic test";\
    288307                                $(ECHO) " * lib                 : make library";\
    289308                                $(ECHO) " * soft                : make software";\
  • trunk/Platforms/Test/data/debug/debug.cfg

    r138 r139  
    11${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Files/debug.sim
    22${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Files/Morpheo.gen
    3 ${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Files/Instance_x01_w02_04.cfg
    4 ${MORPHEO_TOPLEVEL}/Softwares/Test/Test_000/bin/soft_NEWLIB_MORPHEO.x
     3${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Files/debug.cfg
     4${MORPHEO_TOPLEVEL}/Softwares/Test/Test_009/bin/soft_NEWLIB_MORPHEO.x
    550
    660
  • trunk/Platforms/Test/script/copy_test.sh

    r137 r139  
    1414        name_dest=${2};
    1515    elif test ${#} -eq 1; then
    16         name_src="x1_w1_0";
     16        name_src="x01_w01_00";
    1717        name_dest=${1};
    1818    else
  • trunk/Softwares/Dhrystone/Makefile.defs

    r138 r139  
    77#
    88
    9 DHRYSTONE_NB_RUNS               = 1000
     9DHRYSTONE_NB_RUNS               = 10
  • trunk/Softwares/Makefile

    r138 r139  
    1717#-----[ Variables ]---------------------------------------------------------------
    1818
    19 SOFT_MORPHEO                    =       Minimal_soft                                            \
     19SOFT_MORPHEO                    =       Test/*                                                  \
    2020                                        Dhrystone                                               \
    2121                                        MiBench                                                 \
    2222                                        SPECINT2000                                             \
    23                                         Test/*
     23                                        Minimal_soft
    2424
    2525SOFT_x86                        =       Dhrystone                                               \
  • trunk/Softwares/Makefile.Software

    r138 r139  
    5757
    5858#~~~~~[ TARGET : COMMON ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    59 COMMON_OPTIMIZE                 = -O3 -std=c99 -Wall -Wlong-long
     59COMMON_OPTIMIZE                 = -O2 -std=c99 -Wall -Wlong-long
    6060
    6161COMMON_CC_OPT                   = $(INCDIR) -D$(OS) -D$(TARGET) $($(TARGET)_OPTIMIZE) $(FLAGS)
    … …  
    123123EV67_LD                         = $(EV67_BIN)/$(PREFIX_EV67)gcc
    124124EV67_OBJDUMP                    = $(EV67_BIN)/$(PREFIX_EV67)objdump
    125 EV67_NM                         = $(EV67_BIN)/$(PREFIX_EV67)nm
     125EV67_NM                         = $(EV67_BIN)/$(PREFIX_EV67)nm
    126126
    127 EV67_CC_OPT                     = $(COMMON_CC_OPT)     
    128 EV67_AS_OPT                     = $(COMMON_AS_OPT)     
    129 EV67_LD_OPT                     = $(COMMON_LD_OPT)     
     127EV67_CC_OPT                     = $(COMMON_CC_OPT)
     128EV67_AS_OPT                     = $(COMMON_AS_OPT)
     129EV67_LD_OPT                     = $(COMMON_LD_OPT)
    130130EV67_OBJDUMP_OPT                = $(COMMON_OBJDUMP_OPT)
    131131EV67_NM_OPT                     = $(COMMON_NM_OPT)
    … …  
    144144$(DIR_BIN)/%.x                  : $(DIR_BIN) $(DIR_OBJ)
    145145                                @\
    146                                 $(MAKE) $(OBJECTS);                             \
    147                                 $(ECHO) "Linkage            : $*.x";            \
    148                                 $($(TARGET)_LD) -o $@ $(OBJECTS) $($(TARGET)_LD_OPT); \
    149                                 $(ECHO) "List symbols       : $*.x.nm";         \
     146                                $(MAKE) $(OBJECTS);                                             \
     147                                $(ECHO) "Linkage            : $*.x";                            \
     148                                $($(TARGET)_LD) -o $@ $(OBJECTS) $($(TARGET)_LD_OPT);           \
     149                                $(ECHO) "List symbols       : $*.x.nm";                         \
    150150                                $($(TARGET)_NM)      $($(TARGET)_NM_OPT)      $@ > $@.nm;       \
    151                                 $(ECHO) "Display info       : $*.x.txt";        \
    152                                 $($(TARGET)_OBJDUMP) $($(TARGET)_OBJDUMP_OPT) $@ > $@.txt;\
     151                                $(ECHO) "Display info       : $*.x.txt";                        \
     152                                $($(TARGET)_OBJDUMP) $($(TARGET)_OBJDUMP_OPT) $@ > $@.txt;      \
    153153                                echo $($(GREP) "l.jal 0" $@.txt);
    154154
    155155$(DIR_OBJ)/%.o                  : %.s   
    156156                                @\
    157                                 $(ECHO) "Compilation        : $*.s";            \
     157                                $(ECHO) "Compilation        : $*.s";                            \
    158158                                $($(TARGET)_CC) $($(TARGET)_CC_OPT)     -o $@   -c $^ ;
    159159#                               $($(TARGET)_CC) $($(TARGET)_CC_OPT)  -S -o $@.s -c $^ ;
    … …  
    161161$(DIR_OBJ)/%.o                  : %.c
    162162                                @\
    163                                 $(ECHO) "Compilation        : $*.c";            \
     163                                $(ECHO) "Compilation        : $*.c";                            \
    164164                                $($(TARGET)_CC) $($(TARGET)_CC_OPT)     -o $@   -c $^ ;
    165165#                               $($(TARGET)_CC) $($(TARGET)_CC_OPT)  -S -o $@.s -c $^ ;
    … …  
    173173                                @\
    174174                                $(ECHO) "Delete     temporary files";           \
    175                                 $(RM)   $(DIR_OBJ)              \
    176                                         *~                      \
    177                                         $(DIR_SRC)/*~           \
    178                                         $(DIR_C)/*~             \
    179                                         $(DIR_ASM)/*~           \
    180                                         $(DIR_SYS)/*~           \
    181                                         $(DIR_INC)/*~           \
    182                                         $(DIR_LDSCRIPT)/*~      \
     175                                $(RM)   $(DIR_OBJ)                              \
     176                                        *~                                      \
     177                                        $(DIR_SRC)/*~                           \
     178                                        $(DIR_C)/*~                             \
     179                                        $(DIR_ASM)/*~                           \
     180                                        $(DIR_SYS)/*~                           \
     181                                        $(DIR_INC)/*~                           \
     182                                        $(DIR_LDSCRIPT)/*~
    183183
    184 clean_all                       : clean
     184clean_all                       : clean
    185185                                $(RM)   $(DIR_BIN)
    186186
    … …  
    188188help                            :
    189189                                @\
    190                                 $(ECHO) "";\
    191                                 $(ECHO) "List of directive   : ";\
    192                                 $(ECHO) " * all              : Compile the software";\
    193                                 $(ECHO) " * clean            : Erase all files generates";\
    194                                 $(ECHO) " * clean_all        : Erase all files generates";\
     190                                $(ECHO) "";                                                     \
     191                                $(ECHO) "List of directive   : ";                               \
     192                                $(ECHO) " * all              : Compile the software";           \
     193                                $(ECHO) " * clean            : Erase all files generates";      \
     194                                $(ECHO) " * clean_all        : Erase all files generates";      \
    195195                                $(ECHO) "";
  • trunk/Softwares/Makefile.defs

    r138 r139  
    77#
    88
    9 OS                              = NEWLIB
    10 TARGET                          = MORPHEO
     9OS                              ?= NEWLIB
     10TARGET                          ?= MORPHEO
    1111
    12 #OS                             = UNIX
    13 #TARGET                         = x86
     12#OS                             ?= UNIX
     13#TARGET                         ?= x86
    1414
    15 #OS                             = UNIX
    16 #TARGET                         = EV67
     15#OS                             ?= UNIX
     16#TARGET                         ?= EV67
  • trunk/Softwares/Test/Test_073/src/c/main.c

    r136 r139  
    11// $Id$
    22
    3 //=====[ main ]=================================================================
    43/*
    54 * All thread execute this routine
    … …  
    87
    98#include <stdlib.h>
    10 
    11 int f (int x)
    12 {
    13   int x1, x2, x3, x4, x5, x6, x7, x8;
    14  
    15   x1=x2=x3=x4=x5=x6=x7=x8=1;
    16    
    17   for (int i=0; i<x; ++i)
    18     {
    19       x1 += 2;
    20       x2 += 3;
    21       x3 += 5;
    22       x4 += 7;
    23       x5 += 9;
    24       x6 +=11;
    25       x7 +=13;
    26       x8 +=17;
     9#include <stdio.h>
     10
     11#define TEST_ERROR
     12
     13#define NB_ITERATION 1000
     14
     15//=====[ my_rand ]==============================================================
     16
     17
     18static unsigned long my_rand_next = 1;
     19
     20#define MY_RAND_MAX 32768
     21
     22int my_rand(void)
     23{
     24  my_rand_next = my_rand_next * 1103515245 + 12345;
     25  return((unsigned)(my_rand_next/65536) % MY_RAND_MAX);
     26}
     27
     28void my_srand(unsigned grain)
     29{
     30  my_rand_next = grain;
     31}
     32
     33//=====[ test ]=================================================================
     34
     35void test_take (int x, int * take, int * not_take)
     36{
     37  if ((x&1) == 1) // !!!!
     38    (*take) ++;
     39  else
     40    (*not_take) ++;
     41}
     42
     43void test_no_take (int x, int * take, int * not_take)
     44{
     45  if ((x&1) != 0) // !!!!
     46    (*take) ++;
     47  else
     48    (*not_take) ++;
     49}
     50
     51//=====[ f ]====================================================================
     52
     53int f (int nb_iteration)
     54{
     55#ifdef TEST_ERROR
     56#define NB_VALUE 1000
     57 
     58  const int res_my_rand [NB_VALUE] = // to grain = 1
     59    {
     60      16838,  5758, 10113, 17515, 31051,  5627, 23010,  7419, 16212,  4086,
     61       2749, 12767,  9084, 12060, 32225, 17543, 25089, 21183, 25137, 25566,
     62      26966,  4978, 20495, 10311, 11367, 30054, 17031, 13145, 19882, 25736,
     63      30524, 28505, 28394, 22102, 24851, 19067, 12754, 11653,  6561, 27096,
     64      13628, 15188, 32085,  4143,  6967, 31406, 24165, 13403, 25562, 24834,
     65      31353,   920, 10444, 24803,  7962, 19318,  1422, 31327, 10457,  1945,
     66      14479, 29983, 18751,  3894, 18670,  8259, 16248,  7757, 15629, 13306,
     67      28606, 13990, 11738, 12516,  1414,  5262, 17116, 22825,  3181, 13134,
     68      25343,  8022, 11233,  7536,  9760,  9979, 29071,  1201, 21336, 13061,
     69      22160, 24005, 30729,  7644, 27475, 31693, 25514, 14139, 22088, 26521,
     70
     71       5202,  9171,  4434, 28317, 24582,  6815,  4586,  9653, 26306,  7174,
     72      18451, 23448,  6473, 32434,  8193, 14110, 24748, 28210, 29320, 32049,
     73      12956, 14162,  4166, 14997,  7793, 32310, 21391, 19799,  7926, 14905,
     74      25885,  2582, 15610,  5000,  8052, 30965, 20120, 32380, 15639, 26204,
     75      24385, 12475, 15725, 17265,  3214, 19471, 11376,  4697, 25543, 23297,
     76      14619, 23087,  3123, 31549, 18065, 24256, 18973, 20901, 25613,  6157,
     77       9899,  9267, 22413,  9598, 18526, 13711, 10046, 14566, 18536, 15988,
     78      19878, 13626,  4273,  8387,  1171, 32017,  3752, 12388, 21191, 11483,
     79      18122, 11744, 18528, 15585,  5363, 20159,  5641, 18176,  9575, 28578,
     80      27363, 27685, 29344, 19489, 17713,  5511, 21461, 22626,  8645,  3496,
     81
     82      26703,  6270, 13870, 11529, 27499,  4500,  8607,  5808, 15725, 12457,
     83      16542, 16474, 11531, 17222,  3952, 17024, 19894, 24015, 18247, 11276,
     84      26278, 19365,  8746, 21976, 18092, 25851, 29088, 29163,  2231, 26233,
     85      29732, 21106,  5411,  9874,  5448,  9344, 27589, 17574,  1191,  6789,
     86        695, 11735, 20364, 17040, 17892,  5035, 26979,  1092,   850, 12390,
     87      20195,   668, 20531, 29989, 12281, 23902, 12970, 32186, 19571,  3680,
     88       7261, 26187, 28529, 24190,   446, 24233, 13708, 11863,  6681,  6001,
     89       2499,  3786,  5214, 25829,  1322, 25907, 19628, 13192,  7505,  5990,
     90      20129, 10875, 19829, 31591, 12388,  6042,  9833,  1775,  4719,   342,
     91      28994, 31392, 20509, 31313, 20677,  1282, 11511,  4795,  3474,  6469,
     92
     93       2750,   879, 30989, 30134, 29752, 28364,  4880,  5629,  2235, 21332,
     94      24145,  3356,  5243,  3079,  3988,   807, 24979, 31357,   914, 21187,
     95       3540, 14022, 10149,   609, 29009, 24833, 16696,  5432, 24999, 28863,
     96      16369, 28676, 24077,  7701,  1691, 19840, 28703, 16515, 22229, 32420,
     97      19817, 16264, 19324, 29343,  1462, 28929,  3546, 17043, 18967,   325,
     98      12683, 15634,  6322, 16642, 25395, 11612, 22864, 29910, 21985, 23126,
     99      13988,   685,  6978, 31050, 16476,  6365, 21126,  4193,  8681, 11011,
     100      23058,  1249, 31247, 24731, 28650, 20774,  7980, 20833, 27868,  7778,
     101      23624, 11115,  1645, 15892, 29408,  7939, 17285, 16202, 28018, 11334,
     102       4058,  7062,  3784, 11901,  6684, 14289, 27141, 16702, 26853, 13458,
     103
     104      28528, 23363, 21087, 19052, 31235, 15109, 17075, 11755, 10675,   288,
     105      32053, 14157,  5758,  5222, 17488, 18945, 10294, 11200,  5171, 14305,
     106       7951,  6601, 23608,  7214,  6377, 13865, 25369, 27215,  8030,   177,
     107      16849, 11337,  2699, 23099,  8531, 11517, 17567, 28479,  9966,  2597,
     108      14885, 12341, 15227, 27149,   785, 29615,  6476, 20753,  4236,  7730,
     109      19668, 21210, 27519, 27608,  5142,  6999, 20449, 14246, 18638,  2941,
     110      12481, 23726, 16738, 26047, 28947,  3300, 21639, 17996, 23866, 14785,
     111      27571, 25356, 12633, 27289, 20551, 20312, 14426,  7357,  8056, 16252,
     112      20410,  2384,  4353,  2029, 23579, 27882, 31882, 21577, 31368, 11502,
     113      18902, 21012, 31365, 30379, 14256, 19244, 27870, 13365,  9619, 27665,
     114
     115      21293, 29441, 19484, 12759, 15400,  6211,  4144, 15335, 22704, 32520,
     116      23789, 32121, 21913, 23571, 12369,  2770,  1594,   887, 18093, 32317,
     117      11188, 27640,  4295, 12490, 25859,  3106, 24786, 17097,  5062, 27943,
     118      31247, 12292, 16846,  3962, 28479, 27584, 21352, 32044, 31695, 16498,
     119       4714,  9737, 17346, 28482, 24064, 24946,  9822, 19265,  2868, 12792,
     120       3990, 19561, 16959,  9917, 29754, 22104, 25745, 30347, 25825, 11980,
     121      18338, 12465, 25490, 24541, 20599,  8097, 26677,   510, 15347, 14667,
     122      16316, 10673,  8163, 14647, 12817, 29965, 28871, 16485,  6846, 29937,
     123       6241,  5861, 24670, 28166, 26879, 27445, 30407, 11638, 31113, 11101,
     124      22516, 28014, 13898, 21452,  8117,  1364, 12926, 20465, 13845, 25032,
     125
     126       1696, 18585, 13455,    92, 18288, 31755, 29167, 27412, 25030, 31717,
     127      24842, 28572, 26393, 27828, 11805,  3660,  5838,  9046, 18182, 23772,
     128      12354, 15377, 14885, 22759, 22934,  1903,  6159, 26145, 10045, 26847,
     129      17401, 29783,  4167,   781, 24287,  2347, 23402, 19964, 14711, 10637,
     130      20693, 29417, 30937, 24313, 15541,  2528, 23019, 21618,  3716,  5402,
     131      16270, 18242,  8468, 22045, 30602, 18286, 30559, 22674, 25146,  1019,
     132      31243, 20197, 26870,  7908,   448,  7327, 28485, 17622, 14890, 10883,
     133      10943,  1201, 10701, 24682,  3524,  8895, 27276, 24798, 12511, 25522,
     134      24311, 25209, 26359,  2912, 28759, 17148, 26683,  2877,  8571, 12334,
     135      16331,  7324,   577,   635, 26663, 17061, 20451,  9544, 16984, 28693,
     136
     137      19975, 10519, 21472, 19641,  9349, 23391, 30563, 22184, 19958,    41,
     138      27666, 23363, 25344,  2410, 28635,  1006, 20068, 26660, 20562, 29323,
     139      13764, 21307,  7773, 10683,  9013,  8216, 28834, 15571, 15241,  2303,
     140      24754,   928,  3417, 32048, 12018, 19931, 17621, 22209, 14669, 21098,
     141      20555,  4662, 12444, 22109, 16760, 25574, 14544, 18339, 30610, 18189,
     142      24549, 18320, 24081, 25264,  6022, 24847, 19521, 24628,  7552, 26278,
     143      20873,  4029, 32489, 13359, 31352, 30279,  8717, 20560, 23189,  8583,
     144        795, 10687, 26339, 23935,  3988, 27703, 27958, 10212, 19567, 10553,
     145      13368, 32047, 13068, 20611,  4154, 23429, 28895, 13393, 30908,  5960,
     146      30169,  5462, 27323, 23929, 32149, 29305,  9149, 32724, 32584,  6224,
     147
     148        413, 26281, 12389, 11357,  4887, 17532,  1555, 12299,  9490, 26460,
     149      24911, 14183, 22704, 17412, 20961, 20382,  3608,  5811,  7168, 20794,
     150      12286, 13771, 27844,  6684, 11255, 29227, 26960, 27448,  9086,  8526,
     151       1211, 26131,  8645, 11552, 18627, 26110, 25149, 17828, 32048, 12559,
     152      29668,  4167, 23050, 15588, 17746, 28929, 12410,   791, 25985, 18737,
     153      13952,  8576,  1375, 18485, 24922, 16941,  1557, 10700, 31408,  1826,
     154       8213, 32301, 23680, 30161, 28390, 22500, 32716,  7768, 28079, 31599,
     155      18949, 31357, 12421, 27804, 17717, 16490, 26228, 30112, 12016,  9512,
     156      28751,  1015,  2553, 19164,  6200, 30464,  7859, 22212, 13806, 15444,
     157       5710, 27377, 19417, 21994,  7341, 32706, 26839,  9707, 13593, 22820,
     158
     159      23236,  7254, 11688,  5003, 32203,  8788, 23915,  1199, 13424, 24408,
     160       6490, 27655, 21593, 13310,  3072, 12038,  5087,  1697, 23526,  7448,
     161      17497, 15802, 19649, 30555, 25891,  1020, 18267, 14366, 23408, 12848,
     162      29762, 22042, 23252, 31440, 21810, 32626, 19088, 13158,  2370,  2156,
     163      13213, 22434, 10193,  2541,   887,  8766, 24112, 27574, 12206, 22418,
     164      15373, 22113,  1582,  7670, 23202, 18714, 13897, 32731, 19105, 20253,
     165      24201, 29608, 29918,  4338, 11064,  1366, 22970, 15723, 20907, 32202,
     166      23379,  1626, 29779,  9206, 32365, 11539, 15233, 29614, 19999, 23205,
     167      12028, 26186, 20029, 16343,  7237, 10497, 10377, 14564,  5540, 23808,
     168        152, 28918, 22011, 15693,  6790, 16740,  5446, 18015, 16473, 18604
     169    };
     170#endif
     171
     172#ifdef TEST_ERROR
     173  if (nb_iteration>NB_VALUE)
     174    {
     175      printf("Invalid iteration number.\n");
     176      exit(1);
    27177    }
    28 
    29   return x1+x2+x3+x4+x5+x6+x7+x8;
    30 }
    31 
     178#endif
     179 
     180  my_srand(1);
     181
     182  int take     = 0;
     183  int not_take = 0;
     184 
     185  for (int i=0; i<nb_iteration; ++i)
     186    {
     187      int x = my_rand();
     188#ifdef TEST_ERROR
     189      int y = res_my_rand [i];
     190     
     191      if (x != y)
     192        {
     193          printf("Invalid value\n");
     194          exit(2);
     195        }
     196#endif
     197
     198      test_take   (x, &take, &not_take);
     199      test_no_take(x, &take, &not_take);
     200    }
     201
     202#ifdef TEST_ERROR
     203  if ((take+not_take)!=(nb_iteration<<1))
     204    {
     205      printf("Invalid sum\n");
     206      exit(3);
     207    }
     208#endif
     209 
     210  return take>>1;
     211}
     212
     213//=====[ main ]=================================================================
    32214
    33215int main()
    34216{
    35   f(1000);
    36  
    37    
    38   unsigned int * addr = (unsigned int*)((0xa0000000) + 4);
    39 /*   *(addr) = a+b+c+d; */
    40   *(addr) = 0;
    41  
    42 /*   _exit (0); */
     217  int take = 0;
     218
     219  take+=f(NB_ITERATION);
     220
     221  printf("Result : %d/%d\n",take,NB_ITERATION);
     222
     223  exit (0);
    43224
    44225  while (1);
  • trunk/Version

    r138 r139  
    1 0 2 138 Castor 12 05 2010
     10 2 139 Castor 30 07 2010
  • trunk/environment.sh

    r138 r139  
    7373        "labs_network")
    7474            export MORPHEO_PREFIX=/users/chaos/kane/Morpheo;
    75 #           export MORPHEO_PREFIX=/dsk/l1/misc/Morpheo;
    76             export MORPHEO_TMP=${MORPHEO_PREFIX};
     75            export MORPHEO_TMP=${MORPHEO_PREFIX}/tmp;
    7776            ;;
    7877        "labs_local")
    7978            export MORPHEO_PREFIX=/users/chaos/kane/Morpheo;
    80 #           export MORPHEO_PREFIX=/dsk/l1/misc/Morpheo;
    81             export MORPHEO_TMP=${MORPHEO_PREFIX};
     79            export MORPHEO_TMP=${MORPHEO_PREFIX}/tmp;
    8280            ;;
    8381        "home")
Note: See TracChangeset for help on using the changeset viewer.