Changeset 116 for trunk/IPs/systemC/processor/Morpheo/Behavioural/include
- Timestamp:
- Apr 30, 2009, 3:51:41 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h
r109 r116 40 40 { 41 41 TYPE_ALU = 0x0, // 00000 - unit multiple 42 TYPE_SHIFT = 0x1, // 0000 0- unit multiple43 TYPE_MOVE = 0x2, // 000 00 - unit multiple44 TYPE_TEST = 0x3, // 000 00- unit multiple45 TYPE_MUL = 0x4, // 00 000 - unit multiple46 TYPE_DIV = 0x5, // 00 000- unit multiple, type optionnal47 TYPE_EXTEND = 0x6, // 00 000 - unit multiple, type optionnal48 TYPE_FIND = 0x7, // 00 000- unit multiple, type optionnal49 TYPE_SPECIAL = 0x8, // 0 0000 - unit uniq50 TYPE_CUSTOM = 0x9, // 0 0000- unit uniq , type optionnal51 TYPE_BRANCH = 0xa, // 0 0000 - unit multiple52 TYPE_MEMORY = 0xb // 0 0000 - unit uniq , type exclusive42 TYPE_SHIFT = 0x1, // 00001 - unit multiple 43 TYPE_MOVE = 0x2, // 00010 - unit multiple 44 TYPE_TEST = 0x3, // 00011 - unit multiple 45 TYPE_MUL = 0x4, // 00100 - unit multiple 46 TYPE_DIV = 0x5, // 00101 - unit multiple, type optionnal 47 TYPE_EXTEND = 0x6, // 00110 - unit multiple, type optionnal 48 TYPE_FIND = 0x7, // 00111 - unit multiple, type optionnal 49 TYPE_SPECIAL = 0x8, // 01000 - unit uniq 50 TYPE_CUSTOM = 0x9, // 01001 - unit uniq , type optionnal 51 TYPE_BRANCH = 0xa, // 01010 - unit multiple 52 TYPE_MEMORY = 0xb // 01011 - unit uniq 53 53 } type_t; 54 54 … … 202 202 203 203 //---------------------------------------------[ Functionnal Unit ]----- 204 # define OPERATION_ALU_L_ADD 0x1 // 000_0000 l.add , l.addi 205 # define OPERATION_ALU_L_ADDC 0x2 // 000_0000 l.addc , l.addic 206 # define OPERATION_ALU_L_SUB 0x4 // 000_0000 l.sub 207 # define OPERATION_ALU_L_AND 0x8 // 000_0000 l.and , l.andi 208 # define OPERATION_ALU_L_OR 0x10 // 000_0000 l.or , l.ori 209 # define OPERATION_ALU_L_XOR 0x20 // 000_0000 l.xor , l.xori 210 211 # define OPERATION_SHIFT_L_SLL 0x1 // 000_0000 l.sll , l.slli 212 # define OPERATION_SHIFT_L_SRA 0x2 // 000_0000 l.sra , l.srai 213 # define OPERATION_SHIFT_L_SRL 0x4 // 000_0000 l.srl , l.srli 214 # define OPERATION_SHIFT_L_ROR 0x8 // 000_0000 l.ror , l.rori 215 216 # define OPERATION_MOVE_L_MOVHI 0x1 // 000_0000 l.movhi 217 # define OPERATION_MOVE_L_CMOV 0x2 // 000_0000 l.cmov 218 219 # define OPERATION_TEST_L_SFGES 0x41 // 000_0000 l.sfges , l.sfges 220 # define OPERATION_TEST_L_SFGEU 0x1 // 000_0000 l.sfgeu , l.sfgeu 221 # define OPERATION_TEST_L_SFGTS 0x42 // 000_0000 L.sfgts , l.sfgts 222 # define OPERATION_TEST_L_SFGTU 0x2 // 000_0000 l.sfgtu , l.sfgtu 223 # define OPERATION_TEST_L_SFLES 0x44 // 000_0000 l.sfles , l.sfles 224 # define OPERATION_TEST_L_SFLEU 0x4 // 000_0000 l.sfleu , l.sfleu 225 # define OPERATION_TEST_L_SFLTS 0x48 // 000_0000 l.sflts , l.sflts 226 # define OPERATION_TEST_L_SFLTU 0x8 // 000_0000 l.sfltu , l.sfltu 227 # define OPERATION_TEST_L_SFEQ 0x10 // 000_0000 l.sfeq , l.sfeqi 228 # define OPERATION_TEST_L_SFNE 0x20 // 000_0000 l.sfne , l.sfnei 229 230 # define OPERATION_MUL_L_MUL 0x1 // 000_0000 l.mul , l.muli 231 # define OPERATION_MUL_L_MULU 0x2 // 000_0000 l.mulu 232 233 # define OPERATION_DIV_L_DIV 0x1 // 000_0000 l.div 234 # define OPERATION_DIV_L_DIVU 0x2 // 000_0000 l.divu 235 236 # define OPERATION_EXTEND_L_EXTEND_Z 0x1 // 000_0000 l.extbz , l.exthz, l.extwz 237 # define OPERATION_EXTEND_L_EXTEND_S 0x2 // 000_0000 l.extbs , l.exths, l.extws 238 239 # define OPERATION_FIND_L_FF1 0x1 // 000_0000 l.ff1 240 # define OPERATION_FIND_L_FL1 0x2 // 000_0000 l.fl1 241 242 # define OPERATION_SPECIAL_L_NOP 0x7f // 000_0000 l.nop 204 205 // WARNING : Operations are coded in a one-hot implementation that is used in the functional unit's vhdl code. 206 // Do not change that (you can still change the values as long as it respects the one-hot encoding). 207 208 # define OPERATION_ALU_L_ADD 0x1 // 000_0001 l.add , l.addi 209 # define OPERATION_ALU_L_ADDC 0x2 // 000_0010 l.addc , l.addic 210 # define OPERATION_ALU_L_SUB 0x4 // 000_0100 l.sub 211 # define OPERATION_ALU_L_AND 0x8 // 000_1000 l.and , l.andi 212 # define OPERATION_ALU_L_OR 0x10 // 001_0000 l.or , l.ori 213 # define OPERATION_ALU_L_XOR 0x20 // 010_0000 l.xor , l.xori 214 215 // WARNING : Shift and rotate operation codes are hard-coded in the functional unit's vhdl code, 216 // with bit 0 corresponding to the direction (0 for right, and 1 for left), 217 // bit 1 to the type (0 for shift, 1 for rotate) and bit 2 is to be set to 0 for a logic 218 // operation and 1 for an arithmetic operation. 219 // Do not change that (unless you respect the one-hot encoding described above). 220 221 # define OPERATION_SHIFT_L_SLL 0x1 // 000_0001 l.sll , l.slli 222 # define OPERATION_SHIFT_L_SRA 0x4 // 000_0100 l.sra , l.srai 223 # define OPERATION_SHIFT_L_SRL 0x0 // 000_0000 l.srl , l.srli 224 # define OPERATION_SHIFT_L_ROR 0x2 // 000_0010 l.ror , l.rori 225 226 # define OPERATION_MOVE_L_MOVHI 0x1 // 000_0001 l.movhi 227 # define OPERATION_MOVE_L_CMOV 0x2 // 000_0010 l.cmov 228 229 # define OPERATION_TEST_L_SFGES 0x45 // 100_0101 l.sfges , l.sfges 230 # define OPERATION_TEST_L_SFGEU 0x5 // 000_0101 l.sfgeu , l.sfgeu 231 # define OPERATION_TEST_L_SFGTS 0x46 // 100_0110 L.sfgts , l.sfgts 232 # define OPERATION_TEST_L_SFGTU 0x6 // 000_0110 l.sfgtu , l.sfgtu 233 # define OPERATION_TEST_L_SFLES 0x49 // 100_1001 l.sfles , l.sfles 234 # define OPERATION_TEST_L_SFLEU 0x9 // 000_1001 l.sfleu , l.sfleu 235 # define OPERATION_TEST_L_SFLTS 0x4A // 100_1010 l.sflts , l.sflts 236 # define OPERATION_TEST_L_SFLTU 0xA // 000_1010 l.sfltu , l.sfltu 237 # define OPERATION_TEST_L_SFEQ 0x10 // 001_0000 l.sfeq , l.sfeqi 238 # define OPERATION_TEST_L_SFNE 0x20 // 010_0000 l.sfne , l.sfnei 239 240 # define OPERATION_MUL_L_MUL 0x1 // 000_0001 l.mul , l.muli 241 # define OPERATION_MUL_L_MULU 0x2 // 000_0010 l.mulu 242 243 # define OPERATION_DIV_L_DIV 0x1 // 000_0001 l.div 244 # define OPERATION_DIV_L_DIVU 0x2 // 000_0010 l.divu 245 246 # define OPERATION_EXTEND_L_EXTEND_Z 0x1 // 000_0001 l.extbz , l.exthz, l.extwz 247 # define OPERATION_EXTEND_L_EXTEND_S 0x2 // 000_0010 l.extbs , l.exths, l.extws 248 249 # define OPERATION_FIND_L_FF1 0x1 // 000_0001 l.ff1 250 # define OPERATION_FIND_L_FL1 0x2 // 000_0010 l.fl1 251 252 # define OPERATION_SPECIAL_L_NOP 0x7f // 111_1111 l.nop 243 253 # define OPERATION_SPECIAL_L_MFSPR 0x1 // 000_0001 l.mfspr 244 254 # define OPERATION_SPECIAL_L_MTSPR 0x2 // 000_0010 l.mtspr … … 253 263 # define OPERATION_SPECIAL_L_TRAP 0x42 // 100_0010 l.trap 254 264 255 # define OPERATION_BRANCH_NONE 0x1 // 000_000 0l.j256 # define OPERATION_BRANCH_L_TEST_NF 0x2 // 000_00 00 l.bnf257 # define OPERATION_BRANCH_L_TEST_F 0x4 // 000_0 000 l.bf258 # define OPERATION_BRANCH_L_JALR 0x8 // 000_ 0000 l.jal , l.jalr , l.jr265 # define OPERATION_BRANCH_NONE 0x1 // 000_0001 l.j 266 # define OPERATION_BRANCH_L_TEST_NF 0x2 // 000_0010 l.bnf 267 # define OPERATION_BRANCH_L_TEST_F 0x4 // 000_0100 l.bf 268 # define OPERATION_BRANCH_L_JALR 0x8 // 000_1000 l.jal , l.jalr , l.jr 259 269 260 270 //-------------------------------------------------------[ Custom ]----- … … 342 352 # define EXCEPTION_DECOD_BUS_ERROR 0x02 // Access at a invalid physical address 343 353 354 // WARNING : Keep EXCEPTION_ALU_NONE value at 0x00 (kind of hard coded in functional unit's vhdl code). 344 355 # define EXCEPTION_ALU_NONE 0x00 // Functionnal unit generate none exception 345 356 # define EXCEPTION_ALU_RANGE 0x0b // -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h
r115 r116 10 10 #define MORPHEO_MAJOR_VERSION "0" 11 11 #define MORPHEO_MINOR_VERSION "2" 12 #define MORPHEO_REVISION "11 5"12 #define MORPHEO_REVISION "116" 13 13 #define MORPHEO_CODENAME "Castor" 14 14 15 #define MORPHEO_DATE_DAY " 20"15 #define MORPHEO_DATE_DAY "30" 16 16 #define MORPHEO_DATE_MONTH "04" 17 17 #define MORPHEO_DATE_YEAR "2009"
Note: See TracChangeset
for help on using the changeset viewer.