Ignore:
Timestamp:
Feb 2, 2008, 12:39:01 PM (16 years ago)
Author:
rosiere
Message:

Add new component : Read_unit (no tested)
Change functionnal_unit : now use type and operation to execute the good function
Change New_Component's script

File:
1 edited

Legend:

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

    r72 r76  
    66
    77  //=========================================================[ Type ]=====
    8 #  define TYPE_ALU                                 0x0        // 000000 - unit multiple
    9 #  define TYPE_BRANCH                              0x1        // 000001 - unit multiple, to a special routing
    10 #  define TYPE_MEMORY                              0x2        // 000010 - unit uniq
    11 #  define TYPE_MAC                                 0x4        // 000100 - unit uniq
    12 #  define TYPE_TIMER                               0x8        // 001000 - unit uniq
    13 #  define TYPE_CUSTOM                              0x10       // 010000 - unit uniq
     8#  define TYPE_ALU                                 0x0        // 00000 - unit multiple
     9#  define TYPE_SHIFT                               0x1        // 00000 - unit multiple
     10#  define TYPE_MOVE                                0x2        // 00000 - unit multiple
     11#  define TYPE_TEST                                0x3        // 00000 - unit multiple
     12#  define TYPE_MUL_DIV                             0x4        // 00000 - unit multiple, type optionnal
     13#  define TYPE_EXTEND                              0x5        // 00000 - unit multiple, type optionnal
     14#  define TYPE_FIND                                0x6        // 00000 - unit multiple, type optionnal
     15#  define TYPE_SPECIAL                             0x7        // 00000 - unit uniq
     16#  define TYPE_CUSTOM                              0x8        // 00000 - unit uniq
     17#  define TYPE_BRANCH                              0x9        // 00000 - unit multiple, to a special routing
     18#  define TYPE_MEMORY                              0xa        // 00000 - unit uniq
     19#  define MAX_TYPE                                 0x10       // 00000 - unit uniq
    1420
    1521  //====================================================[ Operation ]=====
     
    116122
    117123  //---------------------------------------------[ Functionnal Unit ]-----
    118 #  define OPERATION_ALU_L_ADD                      0x0        // 000_0000 l.add   , l.addi
    119 #  define OPERATION_ALU_L_ADDC                     0x1        // 000_0000 l.addc  , l.addic
    120 #  define OPERATION_ALU_L_SUB                      0x2        // 000_0000 l.sub
    121 #  define OPERATION_ALU_L_MUL                      0x3        // 000_0000 l.mul   , l.muli
    122 #  define OPERATION_ALU_L_MULU                     0x4        // 000_0000 l.mulu
    123 #  define OPERATION_ALU_L_DIV                      0x5        // 000_0000 l.div
    124 #  define OPERATION_ALU_L_DIVU                     0x6        // 000_0000 l.divu
    125 #  define OPERATION_ALU_L_AND                      0x7        // 000_0000 l.and   , l.andi
    126 #  define OPERATION_ALU_L_OR                       0x8        // 000_0000 l.or    , l.ori
    127 #  define OPERATION_ALU_L_XOR                      0x9        // 000_0000 l.xor   , l.xori
    128 #  define OPERATION_ALU_L_TEST_F                   0xa        // 000_0000 l.bf
    129 #  define OPERATION_ALU_L_TEST_NF                  0xb        // 000_0000 l.bnf
    130 #  define OPERATION_ALU_L_JALR                     0xc        // 000_0000 l.jal   , l.jalr , l.jr
    131 #  define OPERATION_ALU_L_SLL                      0xd        // 000_0000 l.sll   , l.slli
    132 #  define OPERATION_ALU_L_SRA                      0xe        // 000_0000 l.sra   , l.srai
    133 #  define OPERATION_ALU_L_SRL                      0xf        // 000_0000 l.srl   , l.srli
    134 #  define OPERATION_ALU_L_ROR                      0x10       // 000_0000 l.ror   , l.rori
    135 #  define OPERATION_ALU_L_MOVHI                    0x11       // 000_0000 l.movhi
    136 #  define OPERATION_ALU_L_EXTEND_S                 0x12       // 000_0000 l.extbs , l.exths, l.extws
    137 #  define OPERATION_ALU_L_EXTEND_Z                 0x13       // 000_0000 l.extbz , l.exthz, l.extwz
    138 #  define OPERATION_ALU_L_CMOV                     0x14       // 000_0000 l.cmov
    139 #  define OPERATION_ALU_L_FF1                      0x15       // 000_0000 l.ff1
    140 #  define OPERATION_ALU_L_FL1                      0x16       // 000_0000 l.fl1
    141 #  define OPERATION_ALU_L_MFSPR                    0x17       // 000_0000 l.mfspr
    142 #  define OPERATION_ALU_L_MTSPR                    0x18       // 000_0000 l.mtspr
    143 #  define OPERATION_ALU_L_SFGES                    0x19       // 000_0000 l.sfges , l.sfges
    144 #  define OPERATION_ALU_L_SFGEU                    0x1a       // 000_0000 l.sfgeu , l.sfgeu
    145 #  define OPERATION_ALU_L_SFGTS                    0x1b       // 000_0000 L.sfgts , l.sfgts
    146 #  define OPERATION_ALU_L_SFGTU                    0x1c       // 000_0000 l.sfgtu , l.sfgtu
    147 #  define OPERATION_ALU_L_SFLES                    0x1d       // 000_0000 l.sfles , l.sfles
    148 #  define OPERATION_ALU_L_SFLEU                    0x1e       // 000_0000 l.sfleu , l.sfleu
    149 #  define OPERATION_ALU_L_SFLTS                    0x1f       // 000_0000 l.sflts , l.sflts
    150 #  define OPERATION_ALU_L_SFLTU                    0x20       // 000_0000 l.sfltu , l.sfltu
    151 #  define OPERATION_ALU_L_SFEQ                     0x21       // 000_0000 l.sfeq  , l.sfeqi
    152 #  define OPERATION_ALU_L_SFNE                     0x22       // 000_0000 l.sfne  , l.sfnei
    153 #  define OPERATION_ALU_L_MAC                      0x23       // 000_0000 l.mac   , l.maci
    154 #  define OPERATION_ALU_L_MACRC                    0x24       // 000_0000 l.macrc
    155 #  define OPERATION_ALU_L_MSB                      0x25       // 000_0000 l.msb
     124#  define OPERATION_ALU_L_ADD                      0x1        // 000_0000 l.add   , l.addi
     125#  define OPERATION_ALU_L_ADDC                     0x2        // 000_0000 l.addc  , l.addic
     126#  define OPERATION_ALU_L_SUB                      0x4        // 000_0000 l.sub
     127#  define OPERATION_ALU_L_AND                      0x8        // 000_0000 l.and   , l.andi
     128#  define OPERATION_ALU_L_OR                       0x10       // 000_0000 l.or    , l.ori
     129#  define OPERATION_ALU_L_XOR                      0x20       // 000_0000 l.xor   , l.xori
     130
     131#  define OPERATION_SHIFT_L_SLL                    0x1        // 000_0000 l.sll   , l.slli
     132#  define OPERATION_SHIFT_L_SRA                    0x2        // 000_0000 l.sra   , l.srai
     133#  define OPERATION_SHIFT_L_SRL                    0x4        // 000_0000 l.srl   , l.srli
     134#  define OPERATION_SHIFT_L_ROR                    0x8        // 000_0000 l.ror   , l.rori
     135
     136#  define OPERATION_MOVE_L_MOVHI                   0x1        // 000_0000 l.movhi
     137#  define OPERATION_MOVE_L_CMOV                    0x2        // 000_0000 l.cmov
     138
     139#  define OPERATION_TEST_L_SFGES                   0x41       // 000_0000 l.sfges , l.sfges
     140#  define OPERATION_TEST_L_SFGEU                   0x1        // 000_0000 l.sfgeu , l.sfgeu
     141#  define OPERATION_TEST_L_SFGTS                   0x42       // 000_0000 L.sfgts , l.sfgts
     142#  define OPERATION_TEST_L_SFGTU                   0x2        // 000_0000 l.sfgtu , l.sfgtu
     143#  define OPERATION_TEST_L_SFLES                   0x44       // 000_0000 l.sfles , l.sfles
     144#  define OPERATION_TEST_L_SFLEU                   0x4        // 000_0000 l.sfleu , l.sfleu
     145#  define OPERATION_TEST_L_SFLTS                   0x48       // 000_0000 l.sflts , l.sflts
     146#  define OPERATION_TEST_L_SFLTU                   0x8        // 000_0000 l.sfltu , l.sfltu
     147#  define OPERATION_TEST_L_SFEQ                    0x10       // 000_0000 l.sfeq  , l.sfeqi
     148#  define OPERATION_TEST_L_SFNE                    0x20       // 000_0000 l.sfne  , l.sfnei
     149
     150#  define OPERATION_MUL_DIV_L_MUL                  0x1        // 000_0000 l.mul   , l.muli
     151#  define OPERATION_MUL_DIV_L_MULU                 0x2        // 000_0000 l.mulu
     152#  define OPERATION_MUL_DIV_L_DIV                  0x4        // 000_0000 l.div
     153#  define OPERATION_MUL_DIV_L_DIVU                 0x8        // 000_0000 l.divu
     154
     155#  define OPERATION_EXTEND_L_EXTEND_Z              0x1        // 000_0000 l.extbz , l.exthz, l.extwz
     156#  define OPERATION_EXTEND_L_EXTEND_S              0x2        // 000_0000 l.extbs , l.exths, l.extws
     157
     158#  define OPERATION_FIND_L_FF1                     0x1        // 000_0000 l.ff1
     159#  define OPERATION_FIND_L_FL1                     0x2        // 000_0000 l.fl1
     160
     161#  define OPERATION_SPECIAL_L_MFSPR                0x1        // 000_0000 l.mfspr
     162#  define OPERATION_SPECIAL_L_MTSPR                0x2        // 000_0000 l.mtspr
     163#  define OPERATION_SPECIAL_L_MAC                  0x4        // 000_0000 l.mac   , l.maci
     164#  define OPERATION_SPECIAL_L_MACRC                0x8        // 000_0000 l.macrc
     165#  define OPERATION_SPECIAL_L_MSB                  0x10       // 000_0000 l.msb
     166
     167#  define OPERATION_BRANCH_L_TEST_NF               0x1        // 000_0000 l.bnf
     168#  define OPERATION_BRANCH_L_TEST_F                0x2        // 000_0000 l.bf
     169#  define OPERATION_BRANCH_L_JALR                  0x4        // 000_0000 l.jal   , l.jalr , l.jr
    156170
    157171  //-------------------------------------------------------[ Custom ]-----
Note: See TracChangeset for help on using the changeset viewer.