Ignore:
Timestamp:
Mar 27, 2008, 11:04:49 AM (17 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/Custom
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/Makefile.deps

    r72 r78  
    1313include                         $(DIR_MORPHEO)/Behavioural/Makefile.deps
    1414endif
     15ifndef Operation
     16include                         $(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.deps
     17endif
     18ifndef Instruction
     19include                         $(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.deps
     20endif
     21
     22#-----[ Directory ]----------------------------------------
     23
     24Custom_DIR                      =       $(DIR_MORPHEO)/Behavioural/./Custom
    1525
    1626#-----[ Library ]------------------------------------------
    17 Custom_LIBRARY                  =       -lCustom        \
     27
     28Custom_LIBRARY                  =       -lCustom                        \
     29                                        $(Operation_LIBRARY)            \
     30                                        $(Instruction_LIBRARY)          \
    1831                                        $(Behavioural_LIBRARY) 
    1932
    20 Custom_DIR_LIBRARY              =       -L$(DIR_MORPHEO)/Behavioural/./Custom/lib       \
     33Custom_DIR_LIBRARY              =       -L$(Custom_DIR)/lib             \
     34                                        $(Operation_DIR_LIBRARY)        \
     35                                        $(Instruction_DIR_LIBRARY)      \
    2136                                        $(Behavioural_DIR_LIBRARY)
    22 
    23 Custom_DEPENDENCIES             =       Behavioural_library
    24 
    25 Custom_CLEAN                    =       Behavioural_library_clean
    2637
    2738#-----[ Rules ]--------------------------------------------
    2839
    29 #.NOTPARALLEL                   : Custom_library Custom_library_clean
     40Custom_library                  :
     41                                @\
     42                                $(MAKE) Behavioural_library;            \
     43                                $(MAKE) Instruction_library;            \
     44                                $(MAKE) Operation_library;              \
     45                                $(MAKE) --directory=$(Custom_DIR) --makefile=Makefile;
    3046
    31 Custom_library                  : $(Custom_DEPENDENCIES)
     47
     48Custom_library_clean            :
    3249                                @\
    33                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/./Custom --makefile=Makefile;
    34 
    35 Custom_library_clean            : $(Custom_CLEAN)
    36                                 @\
    37                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/./Custom --makefile=Makefile clean;
     50                                $(MAKE) Behavioural_library_clean;      \
     51                                $(MAKE) Instruction_library_clean;      \
     52                                $(MAKE) Operation_library_clean;        \
     53                                $(MAKE) --directory=$(Custom_DIR) --makefile=Makefile clean;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom.h

    r72 r78  
    1515#include "Behavioural/include/Usage.h"
    1616#include "Behavioural/include/Constants.h"
    17 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Types.h"
    18 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Operation.h"
     17#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Types.h"
     18#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Instruction.h"
     19#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h"
     20#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Operation.h"
    1921
    2022namespace morpheo {
     
    2325
    2426  // TODO get_custom_vhdl
    25   // TODO : complete the custom_decod_t type
    26   typedef uint32_t custom_decod_t;
     27  typedef uint32_t custom_vhdl_t;
     28
     29  typedef morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::function_decod_t custom_decod_t;
    2730
    2831  typedef morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::function_execute_t           custom_execute_genMoore_t;
     
    3437  typedef struct
    3538  {
    36     bool                          (*_get_valid_group)              (uint32_t);
    37     uint32_t                      (*_get_nb_register)              (uint32_t);
    38     access_mode_t                 (*_get_access_mode)              (uint32_t, uint32_t);
    39     custom_decod_t              * (*_get_custom_decod)              (uint32_t);
    40     custom_execute_genMoore_t   * (*_get_custom_execute_genMoore)   (uint32_t);
     39    bool                          (*_get_valid_group              ) (uint32_t);
     40    uint32_t                      (*_get_nb_register              ) (uint32_t);
     41    access_mode_t                 (*_get_access_mode              ) (uint32_t, uint32_t);
     42    custom_decod_t              * (*_get_custom_decod             ) (Toperation_t);
     43    custom_execute_genMoore_t   * (*_get_custom_execute_genMoore  ) (Toperation_t);
    4144    custom_execute_transition_t * (*_get_custom_execute_transition) (uint32_t);
    42     custom_execute_transition_t * (*_get_custom_execute_reset)      (uint32_t);
     45    custom_execute_transition_t * (*_get_custom_execute_reset     ) (uint32_t);
     46    custom_vhdl_t               * (*_get_vhdl_decod               ) (void);
     47    custom_vhdl_t               * (*_get_vhdl_execute             ) (void);
    4348  } custom_information_t;
    4449
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_default.h

    r72 r78  
    2323  custom_execute_transition_t * default_get_custom_execute_transition (uint32_t     group);
    2424  custom_execute_transition_t * default_get_custom_execute_reset      (uint32_t     group);
     25  custom_vhdl_t               * default_get_vhdl_decod                (void);
     26  custom_vhdl_t               * default_get_vhdl_execute              (void);
     27 
    2528  custom_information_t          default_get_custom_information        (uint32_t     context);
    2629
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_example.h

    r72 r78  
    2323  custom_execute_transition_t * example_get_custom_execute_transition (uint32_t     group);
    2424  custom_execute_transition_t * example_get_custom_execute_reset      (uint32_t     group);
     25  custom_vhdl_t               * example_get_vhdl_decod                (void);
     26  custom_vhdl_t               * example_get_vhdl_execute              (void);
     27
    2528  custom_information_t          example_get_custom_information        (uint32_t     context);
    2629
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_default.cpp

    r72 r78  
    120120      }
    121121
    122     return NULL; // unimplemented function
     122    return &(morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::instruction_illegal); // unimplemented function
    123123  }
    124124
     
    208208
    209209#undef  FUNCTION
     210#define FUNCTION "custom::default_get_vhdl_decod"
     211  custom_vhdl_t * default_get_vhdl_decod (void)
     212  {
     213    return NULL; // unimplemented function
     214  }
     215
     216#undef  FUNCTION
     217#define FUNCTION "custom::default_get_vhdl_execute"
     218  custom_vhdl_t * default_get_vhdl_execute (void)
     219  {
     220    return NULL; // unimplemented function
     221  }
     222
     223#undef  FUNCTION
    210224#define FUNCTION "custom::default_get_custom_information"
    211225  custom_information_t default_get_custom_information (uint32_t context)
     
    220234    info._get_custom_execute_transition = &morpheo::behavioural::custom::default_get_custom_execute_transition;
    221235    info._get_custom_execute_reset      = &morpheo::behavioural::custom::default_get_custom_execute_reset     ;
     236    info._get_vhdl_decod                = &morpheo::behavioural::custom::default_get_vhdl_decod               ;
     237    info._get_vhdl_execute              = &morpheo::behavioural::custom::default_get_vhdl_execute             ;
    222238    return info;
    223239  }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_example.cpp

    r72 r78  
    147147      }
    148148
    149     return NULL; // unimplemented function
    150 
     149    return &(morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::instruction_illegal); // unimplemented function
    151150  }
    152151
     
    251250
    252251#undef  FUNCTION
     252#define FUNCTION "custom::example_get_vhdl_decod"
     253  custom_vhdl_t * example_get_vhdl_decod (void)
     254  {
     255    return NULL; // unimplemented function
     256  }
     257
     258#undef  FUNCTION
     259#define FUNCTION "custom::example_get_vhdl_execute"
     260  custom_vhdl_t * example_get_vhdl_execute (void)
     261  {
     262    return NULL; // unimplemented function
     263  }
     264
     265#undef  FUNCTION
    253266#define FUNCTION "custom::example_get_custom_information"
    254267  custom_information_t example_get_custom_information (uint32_t context)
     
    265278    info._get_custom_execute_transition = &morpheo::behavioural::custom::example_get_custom_execute_transition;
    266279    info._get_custom_execute_reset      = &morpheo::behavioural::custom::example_get_custom_execute_reset     ;
     280    info._get_vhdl_decod                = &morpheo::behavioural::custom::example_get_vhdl_decod               ;
     281    info._get_vhdl_execute              = &morpheo::behavioural::custom::example_get_vhdl_execute             ;
    267282    return info;
    268283  }
Note: See TracChangeset for help on using the changeset viewer.