Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h

    r86 r88  
    1313#endif
    1414
    15 #include <iostream>
    16 #include <list>
    1715#include "Common/include/ToString.h"
    1816#include "Common/include/Debug.h"
     
    2927#endif
    3028#include "Behavioural/include/Usage.h"
     29
     30#include "Behavioural/Generic/Priority/include/Priority.h"
     31
     32#include <iostream>
     33#include <list>
    3134
    3235namespace morpheo {
     
    7578  public    : SC_IN (Tbranch_state_t    )  **  in_IFETCH_BRANCH_STATE                ;//[nb_context]
    7679  public    : SC_IN (Tprediction_ptr_t  )  **  in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ;//[nb_context]
    77                                                                                      
     80  public    : SC_IN (Texception_t       )  **  in_IFETCH_EXCEPTION                   ;//[nb_context]                                                                                 
    7881    // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    7982  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_VAL                          ;//[nb_inst_decod]
     
    8386  public    : SC_OUT(Ttype_t            )  ** out_DECOD_TYPE                         ;//[nb_inst_decod]
    8487  public    : SC_OUT(Toperation_t       )  ** out_DECOD_OPERATION                    ;//[nb_inst_decod]
     88  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_NO_EXECUTE                   ;//[nb_inst_decod]
    8589  public    : SC_OUT(Tcontrol_t         )  ** out_DECOD_IS_DELAY_SLOT                ;//[nb_inst_decod]
    8690  public    : SC_OUT(Tgeneral_data_t    )  ** out_DECOD_ADDRESS                      ;//[nb_inst_decod]
     
    98102  public    : SC_OUT(Tspecial_address_t )  ** out_DECOD_NUM_REG_RE                   ;//[nb_inst_decod]
    99103  public    : SC_OUT(Texception_t       )  ** out_DECOD_EXCEPTION_USE                ;//[nb_inst_decod]
     104  public    : SC_OUT(Texception_t       )  ** out_DECOD_EXCEPTION                    ;//[nb_inst_decod]
    100105
    101106    // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    121126  public    : SC_IN (Tcontrol_t         )   *  in_CONTEXT_EVENT_ACK                  ;
    122127  public    : SC_OUT(Tcontext_t         )   * out_CONTEXT_EVENT_CONTEXT_ID           ;
     128  public    : SC_OUT(Tdepth_t           )   * out_CONTEXT_EVENT_DEPTH                ;
    123129  public    : SC_OUT(Tevent_type_t      )   * out_CONTEXT_EVENT_TYPE                 ;
    124130  public    : SC_OUT(Tcontrol_t         )   * out_CONTEXT_EVENT_IS_DELAY_SLOT        ;
     
    127133
    128134    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     135  private   : generic::priority::Priority   * _priority;
    129136
    130137    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    131   private   : uint32_t                        reg_CONTEXT_PRIORITY;
    132138  private   : Tgeneral_data_t               * reg_CONTEXT_ADDRESS_PREVIOUS     ; //[nb_context]
    133139  private   : Tcontrol_t                    * reg_CONTEXT_IS_DELAY_SLOT        ; //[nb_context]
     
    136142  private   : Tcontrol_t                    * internal_CONTEXT_IS_DELAY_SLOT   ; //[nb_context]
    137143
     144  private   : Tcontrol_t                    * internal_DECOD_VAL               ; //[nb_inst_decod]
    138145    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    139146  private   : decod_instruction_t           * _decod_instruction;
     
    141148  private   : function_decod_t           **** _function_decod   ; //[nb_context][type][opcod]
    142149  private   : function_decod_t           **** _function_custom  ; //[nb_context][type][opcod]
    143   private   : std::list<select_t>             select;
    144150#endif
    145151
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Parameters.h

    r86 r88  
    2929  public : uint32_t          * _nb_inst_fetch                ; //[nb_context]
    3030  public : uint32_t            _nb_inst_decod                ;
    31   public : uint32_t            _size_general_data            ;
    32   public : uint32_t            _nb_branch_speculated         ;
    33   public : uint32_t            _size_branch_update_prediction;
     31//public : uint32_t            _size_general_data            ;
     32  public : uint32_t          * _nb_branch_speculated         ; //[nb_context]
     33//public : uint32_t          * _size_branch_update_prediction; //[nb_context]
    3434  public : uint32_t            _nb_context_select            ;
    3535  public : Tpriority_t         _priority                     ;
    3636  public : Tload_balancing_t   _load_balancing               ;
    3737  public : bool             ** _instruction_implemeted       ; //[nb_context][nb_instruction]
    38   public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (uint32_t);
     38  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (void);
    3939   
    40   public : uint32_t            _max_nb_inst_fetch     ;
    41 
    42   public : uint32_t            _size_address_inst     ;
    43   public : uint32_t            _size_context_id       ;
    44   public : uint32_t            _size_depth            ;
    45   public : uint32_t            _size_inst_ifetch_ptr  ;
    46                                                      
    47   public : bool                _have_port_context_id                 ;
    48   public : bool                _have_port_depth                      ;
    49   public : bool                _have_port_branch_update_prediction_id;
    50   public : bool                _have_port_inst_ifetch_ptr            ;
     40  public : uint32_t            _max_nb_inst_fetch;
     41//public : uint32_t            _size_address_inst;
    5142
    5243    //-----[ methods ]-----------------------------------------------------------
     
    5546                        uint32_t          * nb_inst_fetch                ,
    5647                        uint32_t            nb_inst_decod                ,
     48                        uint32_t          * nb_branch_speculated         ,
     49//                      uint32_t          * size_branch_update_prediction,
     50                        uint32_t            nb_context_select            ,
    5751                        uint32_t            size_general_data            ,
    58                         uint32_t            nb_branch_speculated         ,
    59                         uint32_t            size_branch_update_prediction,
    60                         uint32_t            nb_context_select            ,
    6152                        Tpriority_t         priority                     ,
    6253                        Tload_balancing_t   load_balancing               ,
    6354                        bool             ** instruction_implemeted       ,
    64                         morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t));
     55                        morpheo::behavioural::custom::custom_information_t (*get_custom_information) (void),
     56                        bool                is_toplevel=false
     57                        );
    6558
    6659//   public : Parameters  (Parameters & param) ;
    6760  public : ~Parameters () ;
     61
     62  public :        void            copy       (void);
    6863
    6964  public :        Parameters_test msg_error  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Types.h

    r81 r88  
    1919namespace decod {
    2020
    21   class select_t
    22   {
    23   public : uint32_t _context ;
    24   public : uint32_t _inst_fetch;
    25    
    26   public : select_t (uint32_t context,
    27                      uint32_t inst_fetch)
    28     {
    29       _context    = context ;
    30       _inst_fetch = inst_fetch;
    31     }
    32   };
    33 
    3421
    3522}; // end namespace decod
Note: See TracChangeset for help on using the changeset viewer.