Ignore:
Timestamp:
Mar 27, 2008, 11:04:49 AM (16 years ago)
Author:
rosiere
Message:

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit
Files:
6 edited

Legend:

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

    r75 r78  
    5050  public : ~Parameters () ;
    5151
    52   public :        std::string  msg_error  (void);
     52  public :        Parameters_test msg_error  (void);
    5353
    5454  public :        std::string   print      (uint32_t depth);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_msg_error.cpp

    r75 r78  
    2121#undef  FUNCTION
    2222#define FUNCTION "Register_unit_Glue::msg_error"
    23   std::string Parameters::msg_error(void)
     23  Parameters_test Parameters::msg_error(void)
    2424  {
    2525    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
    2626
    27     std::string msg = "";
    28 
    29     return msg;
     27    Parameters_test test("Register_unit_Glue");
    3028
    3129    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
     30
     31    return test;
    3232  };
    3333
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h

    r75 r78  
    7979  public : ~Parameters () ;
    8080
    81   public :        std::string  msg_error  (void);
     81  public :        Parameters_test msg_error  (void);
    8282  public :        std::string   print      (uint32_t depth);
    8383  public : friend std::ostream& operator<< (std::ostream& output_stream,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h

    r75 r78  
    55 * $Id$
    66 *
    7  * [ Description ]
     7 * [ Description ]
    88 *
    99 */
     
    4545#endif
    4646  {
    47     // -----[ fields ]----------------------------------------------------
     47    // -----[ fields ]----------------------------------------------------
    4848    // Parameters
    4949  protected : const std::string       _name;
     
    5959
    6060#ifdef SYSTEMC
    61     // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     61    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    6262    // Interface
    6363  public    : SC_CLOCK                      *  in_CLOCK        ;
    6464  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
    6565
    66     // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     66    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    6767  public    : SC_IN (Tcontrol_t        )   **  in_GPR_READ_VAL                 ;
    6868  public    : SC_OUT(Tcontrol_t        )   ** out_GPR_READ_ACK                 ;
     
    7272  public    : SC_OUT(Tcontrol_t        )   ** out_GPR_READ_DATA_VAL            ;
    7373
    74     // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     74    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7575  public    : SC_IN (Tcontrol_t        )   **  in_GPR_WRITE_VAL                ;
    7676  public    : SC_OUT(Tcontrol_t        )   ** out_GPR_WRITE_ACK                ;
     
    7979  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_WRITE_DATA               ;
    8080
    81     // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     81    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    8282  public    : SC_IN (Tcontrol_t        )   **  in_SPR_READ_VAL                 ;
    8383  public    : SC_OUT(Tcontrol_t        )   ** out_SPR_READ_ACK                 ;
     
    8787  public    : SC_OUT(Tcontrol_t        )   ** out_SPR_READ_DATA_VAL            ;
    8888
    89     // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     89    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9090  public    : SC_IN (Tcontrol_t        )   **  in_SPR_WRITE_VAL                ;
    9191  public    : SC_OUT(Tcontrol_t        )   ** out_SPR_WRITE_ACK                ;
     
    9494  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA               ;
    9595   
    96     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     96    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9797  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL               ;
    9898  public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK               ;
     
    102102  public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG        ;
    103103
    104     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     104    // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    105105  public    : SC_IN (Tcontrol_t        )  ***  in_RETIRE_ROB_VAL               ;
    106106  public    : SC_OUT(Tcontrol_t        )  *** out_RETIRE_ROB_ACK               ;
     
    114114  public    : SC_IN (Tspecial_address_t)  ***  in_RETIRE_ROB_RE_NEW_NUM_REG    ;
    115115
    116     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     116    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    117117  protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_gpr       ;
    118118  protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_gpr_status;
     
    121121  protected : morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue      * component_glue      ;
    122122
    123     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     123    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    124124
    125     // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     125    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    126126#endif
    127127
    128     // -----[ methods ]---------------------------------------------------
     128    // -----[ methods ]---------------------------------------------------
    129129
    130130#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_msg_error.cpp

    r75 r78  
    1818#undef  FUNCTION
    1919#define FUNCTION "Register_unit::msg_error"
    20   std::string Parameters::msg_error(void)
     20  Parameters_test Parameters::msg_error(void)
    2121  {
    2222    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
    2323
    24     std::string msg = "";
    25 
    26     return msg;
     24    Parameters_test test("Register_unit");
    2725
    2826    log_printf(FUNC,Register_unit,FUNCTION,"End");
     27
     28    return test;
    2929  };
    3030
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp

    r75 r78  
    240240
    241241            in_RETIRE_ROB_VAL            [i][j] = interface->set_signal_valack_in  (VAL);
    242             out_RETIRE_ROB_ACK            [i][j] = interface->set_signal_valack_out (ACK);
     242           out_RETIRE_ROB_ACK            [i][j] = interface->set_signal_valack_out (ACK);
    243243            in_RETIRE_ROB_RD_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_old_use"    , 1);
    244244            in_RETIRE_ROB_RD_OLD_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_old_num_reg", _param->_size_gpr_address);
     
    470470                                   _name+"_glue",
    471471                                   "out_CONST_1");
     472
     473              _component->port_map(_name+"_glue",
     474                                   "out_CONST_1",
     475                                   name_component,
     476                                   "in_WRITE_"+toString(x)+"_DATA" );
     477
     478
    472479              _component->port_map(name_component,
    473480                                   "in_WRITE_"+toString(x++)+"_ADDRESS",
     
    492499                                   "out_CONST_0"
    493500                                   );
     501              _component->port_map( _name+"_glue",
     502                                    "out_CONST_0",
     503                                    name_component,
     504                                   "in_WRITE_"+toString(x)+"_DATA");
    494505
    495506              _component->port_map(name_component,
     
    515526                                   _name+"_glue",
    516527                                   "out_CONST_0");
     528              _component->port_map(_name+"_glue",
     529                                   "out_CONST_0",
     530                                   name_component,
     531                                   "in_WRITE_"+toString(x)+"_DATA" );
    517532
    518533              _component->port_map(name_component,
     
    534549                                   _name+"_glue",
    535550                                   "out_CONST_1"
     551                                   );
     552              _component->port_map(_name+"_glue",
     553                                   "out_CONST_1",
     554                                   name_component,
     555                                   "in_WRITE_"+toString(x)+"_DATA"
    536556                                   );
    537557
     
    651671                                   _name+"_glue",
    652672                                   "out_CONST_1");
     673              _component->port_map(_name+"_glue",
     674                                   "out_CONST_1",
     675                                   name_component,
     676                                   "in_WRITE_"+toString(x)+"_DATA"
     677                                   );
     678
    653679              _component->port_map(name_component,
    654680                                   "in_WRITE_"+toString(x++)+"_ADDRESS",
     
    673699                                   "out_CONST_0"
    674700                                   );
     701              _component->port_map( _name+"_glue",
     702                                    "out_CONST_0",
     703                                   name_component,
     704                                   "in_WRITE_"+toString(x)+"_DATA"
     705                                   );
    675706
    676707              _component->port_map(name_component,
     
    696727                                   _name+"_glue",
    697728                                   "out_CONST_0");
     729              _component->port_map(_name+"_glue",
     730                                   "out_CONST_0",
     731                                   name_component,
     732                                   "in_WRITE_"+toString(x)+"_DATA"
     733                                   );
    698734
    699735              _component->port_map(name_component,
     
    715751                                   _name+"_glue",
    716752                                   "out_CONST_1"
     753                                   );
     754              _component->port_map(_name+"_glue",
     755                                   "out_CONST_1",
     756                                   name_component,
     757                                   "in_WRITE_"+toString(x)+"_DATA"
    717758                                   );
    718759
     
    738779      _component->port_map(name_component,"in_CLOCK" , _name, "in_CLOCK" );
    739780      _component->port_map(name_component,"in_NRESET", _name, "in_NRESET");
    740       _component->port_map(name_component,"out_CONST_0");
    741       _component->port_map(name_component,"out_CONST_1");
     781//       _component->port_map(name_component,"out_CONST_0",_name,"out_CONST_0");
     782//       _component->port_map(name_component,"out_CONST_1",_name,"out_CONST_1");
    742783
    743784      for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
Note: See TracChangeset for help on using the changeset viewer.