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

Almost complete design
with Test and test platform

File:
1 edited

Legend:

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

    r81 r88  
    2525  typedef uint8_t            Tcounter_t; // universal counter
    2626  typedef uint8_t            Tptr_t;     // universal pointer
    27                              
     27  typedef uint32_t           Tspr_t;
     28  typedef uint16_t           Tspr_address_t;
     29
    2830//typedef uint32_t           Tdestination1_t;
    2931//typedef uint32_t           Tdestination2_t;
     
    6971  typedef enum
    7072    {
     73      ORBIS32,
     74      ORBIS64,
     75      ORFPX32,
     76      ORFPX64,
     77      ORVDX64
     78    } ISA;
     79
     80  typedef enum
     81    {
    7182      PRIORITY_STATIC,
    7283      PRIORITY_ROUND_ROBIN
     
    93104      PREDICTOR_NEVER_TAKE      , // Branch is never  Take
    94105      PREDICTOR_ALWAYS_TAKE     , // Branch is always Take
    95       PREDICTOR_STATIC          , // If the adress of destination is previous, then the branch is take
     106      PREDICTOR_STATIC          , // If the address of destination is previous, then the branch is take
    96107      PREDICTOR_LAST_TAKE       , // The direction is as the last time (if is the first time : static)
    97108      PREDICTOR_COUNTER         , // Counter table
     
    99110      PREDICTOR_GLOBAL          , // Counter bank indexed with history table
    100111      PREDICTOR_META            , // A meta_predictor choose between 2 predictor : the local or the global
    101       PREDICTOR_CUSTOM            // Note predefined scheme
     112      PREDICTOR_CUSTOM            // Not predefined scheme
    102113    } Tpredictor_t;
     114
     115  //--------------------------------------------------[ instruction ]-----
     116  class instruction_t
     117  {
     118  public :
     119    Ttype_t      _type      ;
     120    Toperation_t _operation ;
     121    ISA          _isa_subset;
     122    uint8_t      _isa_class ;
     123
     124    instruction_t (Ttype_t      type      ,
     125                   Toperation_t operation ,
     126                   ISA          isa_subset,
     127                   uint8_t      isa_class )
     128    {
     129      _type       = type      ;
     130      _operation  = operation ;
     131      _isa_subset = isa_subset;
     132      _isa_class  = isa_class ;
     133    }
     134  };
     135
     136  instruction_t instruction_information (uint32_t instruction);
     137  uint32_t      instruction_size_data   (uint32_t instruction);
    103138
    104139  //----------------------------------------------[ spr_mode_access ]-----
     
    122157    switch (x)
    123158      {
    124       case TYPE_ALU     : return "ALU"    ; break;
    125       case TYPE_SHIFT   : return "SHIFT"  ; break;
    126       case TYPE_MOVE    : return "MOVE"   ; break;
    127       case TYPE_TEST    : return "TEST"   ; break;
    128       case TYPE_MUL_DIV : return "MUL_DIV"; break;
    129       case TYPE_EXTEND  : return "EXTEND" ; break;
    130       case TYPE_FIND    : return "FIND"   ; break;
    131       case TYPE_SPECIAL : return "SPECIAL"; break;
    132       case TYPE_CUSTOM  : return "CUSTOM" ; break;
    133       case TYPE_BRANCH  : return "BRANCH" ; break;
    134       case TYPE_MEMORY  : return "MEMORY" ; break;
    135       default           : return ""       ; break;
     159      case TYPE_ALU     : return "ALU"        ; break;
     160      case TYPE_SHIFT   : return "SHIFT"      ; break;
     161      case TYPE_MOVE    : return "MOVE"       ; break;
     162      case TYPE_TEST    : return "TEST"       ; break;
     163      case TYPE_MUL     : return "MUL"        ; break;
     164      case TYPE_DIV     : return "DIV"        ; break;
     165      case TYPE_EXTEND  : return "EXTEND"     ; break;
     166      case TYPE_FIND    : return "FIND"       ; break;
     167      case TYPE_SPECIAL : return "SPECIAL"    ; break;
     168      case TYPE_CUSTOM  : return "CUSTOM"     ; break;
     169      case TYPE_BRANCH  : return "BRANCH"     ; break;
     170      case TYPE_MEMORY  : return "MEMORY"     ; break;
     171      default           : return "Unknow type"; break;
    136172      }
    137173  };
Note: See TracChangeset for help on using the changeset viewer.