OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

[/] [thor/] [trunk/] [rtl/] [verilog/] [Thor_defines.v] - Diff between revs 37 and 42

Show entire file | Details | Blame | View Log

Rev 37 Rev 42
Line 1... Line 1...
// ============================================================================
// ============================================================================
//        __
//        __
//   \\__/ o\    (C) 2013,2015  Robert Finch, Stratford
//   \\__/ o\    (C) 2013-2016  Robert Finch, Stratford
//    \  __ /    All rights reserved.
//    \  __ /    All rights reserved.
//     \/_//     robfinch<remove>@finitron.ca
//     \/_//     robfinch<remove>@finitron.ca
//       ||
//       ||
//
//
// This source file is free software: you can redistribute it and/or modify 
// This source file is free software: you can redistribute it and/or modify 
Line 24... Line 24...
// ============================================================================
// ============================================================================
//
//
`ifndef THOR_DEFINES
`ifndef THOR_DEFINES
`define THOR_DEFINES    1'b1
`define THOR_DEFINES    1'b1
 
 
`define SIMULATION      1'b1
//`define SIMULATION      1'b1
`define SEGMENTATION    1'b1
//`define SEGMENTATION  1'b1
 
//`define VECTOROPS     1'b1
//`define SEGLIMITS       1'b1
//`define SEGLIMITS       1'b1
//`define STACKOPS        1'b1
//`define STACKOPS        1'b1
//`define UNLINKOP        1'b1
//`define UNLINKOP        1'b1
//`define BITFIELDOPS     1'b1
//`define BITFIELDOPS     1'b1
//`define FLOATING_POINT        1'b1
//`define FLOATING_POINT        1'b1
Line 66... Line 67...
`define _8ADDU                  6'h0A
`define _8ADDU                  6'h0A
`define _16ADDU                 6'h0B
`define _16ADDU                 6'h0B
`define MIN             6'h10
`define MIN             6'h10
`define MAX             6'h11
`define MAX             6'h11
`define MOD             6'h13
`define MOD             6'h13
`define CHK             6'h14
`define CHKX            6'h14
 
`define CHK             6'h15
`define MODU            6'h17
`define MODU            6'h17
`define R2          8'h41
`define R2          8'h41
`define CPUID           4'h0
`define CPUID           4'h0
`define REDOR           4'h1    // reduction or
`define REDOR           4'h1    // reduction or
`define REDAND          4'h2    // reduction and
`define REDAND          4'h2    // reduction and
Line 82... Line 84...
`define PNAND           6'd3
`define PNAND           6'd3
`define PNOR            6'd4
`define PNOR            6'd4
`define PENOR           6'd5
`define PENOR           6'd5
`define PANDC           6'd6
`define PANDC           6'd6
`define PORC            6'd7
`define PORC            6'd7
 
`define CHKI        8'h45
`define BITI        8'h46
`define BITI        8'h46
`define ADDUIS      8'h47
`define ADDUIS      8'h47
`define ADDI            8'h48
`define ADDI            8'h48
`define SUBI            8'h49
`define SUBI            8'h49
`define MULI            8'h4A
`define MULI            8'h4A
Line 105... Line 108...
`define ORC                             6'h7
`define ORC                             6'h7
`define MLO         8'h51
`define MLO         8'h51
`define ANDI            8'h53
`define ANDI            8'h53
`define ORI                     8'h54
`define ORI                     8'h54
`define EORI            8'h55
`define EORI            8'h55
 
`define VR      8'h56
 
`define VEX       6'h0
 
`define VEINS     6'h1
 
`define VSHLV     6'h2
 
`define VSHRV     6'h3
 
`define VFLT2INT  6'h4
 
`define VINT2FLT  6'h5
 
`define VBITS2V   6'h6
 
`define VRR     8'h57
 
`define VADD      5'h00
 
`define VSUB      5'h01
 
`define VMUL      5'h02
 
`define VDIV      5'h03
 
`define VSCALE    5'h05
 
`define VCMP      5'h06
 
`define VAND      5'h08
 
`define VOR       5'h09
 
`define VEOR      5'h0A
 
`define VADDL     5'h10
 
`define VSUBL     5'h11
 
`define VMULL     5'h12
 
`define VDIVL     5'h13
 
`define VSCALEL   5'h15
 
`define VCMPL     5'h16
 
`define VANDL     5'h18
 
`define VORL      5'h19
 
`define VEORL     5'h1A
 
 
`define SHIFT           8'h58
`define SHIFT           8'h58
`define SHL                             6'h00
`define SHL                             6'h00
`define SHR                             6'h01
`define SHR                             6'h01
`define SHLU                    6'h02
`define SHLU                    6'h02
Line 119... Line 149...
`define SHRI                    6'h11
`define SHRI                    6'h11
`define SHLUI                   6'h12
`define SHLUI                   6'h12
`define SHRUI                   6'h13
`define SHRUI                   6'h13
`define ROLI                    6'h14
`define ROLI                    6'h14
`define RORI                    6'h15
`define RORI                    6'h15
 
`define VMAC    8'h5A
`define MODI        8'h5B
`define MODI        8'h5B
`define CHKI        8'h5D
`define CHKXI   8'h5D
`define MODUI       8'h5F
`define MODUI       8'h5F
 
 
`define LLA         8'h6A       // compute linear address
`define LLA         8'h6A       // compute linear address
`define _2ADDUI         8'h6B
`define _2ADDUI         8'h6B
`define _4ADDUI         8'h6C
`define _4ADDUI         8'h6C
Line 256... Line 287...
`define LHX                     8'hB4
`define LHX                     8'hB4
`define LHUX            8'hB5
`define LHUX            8'hB5
`define LWX                     8'hB6
`define LWX                     8'hB6
`define JMPIX       8'hB7
`define JMPIX       8'hB7
`define LLAX        8'hB8
`define LLAX        8'hB8
 
`define LV      8'hBD
 
`define LVWS    8'hBE
 
`define LVX     8'hBF
 
 
`define SBX                     8'hC0
`define SBX                     8'hC0
`define SCX                     8'hC1
`define SCX                     8'hC1
`define SHX                     8'hC2
`define SHX                     8'hC2
`define SWX                     8'hC3
`define SWX                     8'hC3
Line 268... Line 302...
`define PUSH        8'hC8
`define PUSH        8'hC8
`define PEA         8'hC9
`define PEA         8'hC9
`define POP         8'hCA
`define POP         8'hCA
`define LINK        8'hCB
`define LINK        8'hCB
`define UNLINK      8'hCC
`define UNLINK      8'hCC
 
`define SV      8'hCD
 
`define SVWS    8'hCE
 
`define SVX     8'hCF
 
 
`define TLB                     8'hF0
`define TLB                     8'hF0
`define TLB_NOP                 4'd0
`define TLB_NOP                 4'd0
`define TLB_P                   4'd1
`define TLB_P                   4'd1
`define TLB_RD                  4'd2
`define TLB_RD                  4'd2
Line 308... Line 345...
`define MEMSB           8'hF8   // synchronization barrier
`define MEMSB           8'hF8   // synchronization barrier
`define MEMDB           8'hF9   // data barrier
`define MEMDB           8'hF9   // data barrier
`define CLI                     8'hFA
`define CLI                     8'hFA
`define SEI                     8'hFB
`define SEI                     8'hFB
`define RTD         8'hFC
`define RTD         8'hFC
 
`define RTF     8'hFD
 
`define JSF     8'hFE
`define IMM                     8'hFF
`define IMM                     8'hFF
 
 
`define PREDC   3:0
`define PREDC   3:0
`define PREDR   7:4
`define PREDR   7:4
`define OPCODE  15:8
`define OPCODE  15:8
`define RA              21:16
`define RA              21:16
`define RB              27:22
`define RB              27:22
`define INSTRUCTION_RA  21:16
`define INSTRUCTION_RA  21:16
`define INSTRUCTION_RB  27:22
`define INSTRUCTION_RB  27:22
`define INSTRUCTION_RC  33:28
`define INSTRUCTION_RC  33:28
 
`define INSTRUCTION_RD  39:34
 
 
`define XTBL    4'd12
`define XTBL    4'd12
`define EPC             4'd13
`define EPC             4'd13
`define IPC             4'd14
`define IPC             4'd14
 
 
// Special Registers
// Special Registers
`define PREGS           6'h0x
`define PREGS           6'h0x
`define CREGS                   6'h1x
`define CREGS                   6'h1x
`define SREGS                   6'h2x
`define SREGS                   6'h2x
`define PREGS_ALL               6'h30
`define USP             6'h31
`define TICK                    6'h32
`define TICK                    6'h32
`define LCTR                    6'h33
`define LCTR                    6'h33
`define ASID                    6'h36
`define PREGS_ALL               6'd52
`define SR                              6'h37
`define ASID                    6'd53
`define FPSCR           6'h38
`define VL        6'd54
 
`define SR                              6'h55
 
`define FPSCR     6'd56
 
`define ARG1      6'd58
`define CLK_THROTTLE    6'h3F
`define CLK_THROTTLE    6'h3F
 
 
// exception types:
// exception types:
`define EXC_NONE        4'd0
`define EXC_NONE        4'd0
`define EXC_HALT        4'd1
`define EXC_HALT        4'd1
Line 350... Line 393...
`define EXC_DBZ         4'd9            // divide by zero
`define EXC_DBZ         4'd9            // divide by zero
`define EXC_FLT     4'd10       // floating point exception
`define EXC_FLT     4'd10       // floating point exception
`define EXC_DBG     4'd11
`define EXC_DBG     4'd11
`define EXC_PRIV    4'd12
`define EXC_PRIV    4'd12
`define EXC_CHK     4'd13
`define EXC_CHK     4'd13
 
`define EXC_SEGLD   4'd14
 
 
 
`define EX_NONE     9'd000
 
`define EX_CHK      9'd239
 
`define EX_DBZ      9'd241
 
`define EX_FP       9'd242
 
`define EX_DBG      9'd243
 
`define EX_SEGV     9'd244
 
`define EX_PRIV     9'd245
 
`define EX_TLBMISS  9'd248
 
`define EX_DBE      9'd251
 
`define EX_SEGLD    9'd256
 
 
//
//
// define PANIC types
// define PANIC types
//
//
`define PANIC_NONE              4'd0
`define PANIC_NONE              4'd0
`define PANIC_FETCHBUFBEQ       4'd1
`define PANIC_FETCHBUFBEQ       4'd1

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.