| 1 |
4 |
ericw |
localparam MEM_DATA_W = 16;
|
| 2 |
|
|
localparam IM_W = 6;
|
| 3 |
|
|
// defines that make programming code more human readable
|
| 4 |
|
|
`define __ 4'h0
|
| 5 |
|
|
`define _0 4'h0
|
| 6 |
|
|
`define _1 4'h1
|
| 7 |
|
|
`define _2 4'h2
|
| 8 |
|
|
`define _3 4'h3
|
| 9 |
|
|
`define _4 4'h4
|
| 10 |
|
|
`define _5 4'h5
|
| 11 |
|
|
`define _6 4'h6
|
| 12 |
|
|
`define _7 4'h7
|
| 13 |
|
|
`define P0 4'h8
|
| 14 |
|
|
`define P1 4'h9
|
| 15 |
|
|
`define P2 4'ha
|
| 16 |
|
|
`define P3 4'hb
|
| 17 |
|
|
`define P4 4'hc
|
| 18 |
|
|
`define P5 4'hd
|
| 19 |
|
|
`define P6 4'he
|
| 20 |
|
|
`define P7 4'hf
|
| 21 |
|
|
//
|
| 22 |
|
|
`define nop op_nop[MEM_DATA_W-1:8]
|
| 23 |
|
|
`define pop op_pop[MEM_DATA_W-1:8]
|
| 24 |
|
|
`define pgc op_pgc[MEM_DATA_W-1:8]
|
| 25 |
|
|
`define lit_s op_lit_s[MEM_DATA_W-1:8]
|
| 26 |
|
|
`define lit_h op_lit_h[MEM_DATA_W-1:8]
|
| 27 |
|
|
`define lit_u op_lit_u[MEM_DATA_W-1:8]
|
| 28 |
|
|
`define reg_rs op_reg_rs[MEM_DATA_W-1:8]
|
| 29 |
|
|
`define reg_rh op_reg_rh[MEM_DATA_W-1:8]
|
| 30 |
|
|
`define reg_w op_reg_w[MEM_DATA_W-1:8]
|
| 31 |
|
|
`define reg_wh op_reg_wh[MEM_DATA_W-1:8]
|
| 32 |
|
|
//
|
| 33 |
|
|
`define cpy op_cpy[MEM_DATA_W-1:8]
|
| 34 |
|
|
`define nsg op_nsg[MEM_DATA_W-1:8]
|
| 35 |
|
|
`define not op_not[MEM_DATA_W-1:8]
|
| 36 |
|
|
`define flp op_flp[MEM_DATA_W-1:8]
|
| 37 |
|
|
`define lzc op_lzc[MEM_DATA_W-1:8]
|
| 38 |
|
|
`define bra op_bra[MEM_DATA_W-1:8]
|
| 39 |
|
|
`define bro op_bro[MEM_DATA_W-1:8]
|
| 40 |
|
|
`define brx op_brx[MEM_DATA_W-1:8]
|
| 41 |
|
|
`define and op_and[MEM_DATA_W-1:8]
|
| 42 |
|
|
`define orr op_orr[MEM_DATA_W-1:8]
|
| 43 |
|
|
`define xor op_xor[MEM_DATA_W-1:8]
|
| 44 |
|
|
//
|
| 45 |
|
|
`define add op_add[MEM_DATA_W-1:8]
|
| 46 |
|
|
`define add_xs op_add_xs[MEM_DATA_W-1:8]
|
| 47 |
|
|
`define add_xu op_add_xu[MEM_DATA_W-1:8]
|
| 48 |
|
|
`define sub op_sub[MEM_DATA_W-1:8]
|
| 49 |
|
|
`define sub_xs op_sub_xs[MEM_DATA_W-1:8]
|
| 50 |
|
|
`define sub_xu op_sub_xu[MEM_DATA_W-1:8]
|
| 51 |
|
|
`define mul op_mul[MEM_DATA_W-1:8]
|
| 52 |
|
|
`define mul_xs op_mul_xs[MEM_DATA_W-1:8]
|
| 53 |
|
|
`define mul_xu op_mul_xu[MEM_DATA_W-1:8]
|
| 54 |
|
|
`define shl_s op_shl_s[MEM_DATA_W-1:8]
|
| 55 |
|
|
`define shl_u op_shl_u[MEM_DATA_W-1:8]
|
| 56 |
|
|
`define pow op_pow[MEM_DATA_W-1:8]
|
| 57 |
|
|
//
|
| 58 |
|
|
`define jmp_z op_jmp_z[MEM_DATA_W-1:8]
|
| 59 |
|
|
`define jmp_nz op_jmp_nz[MEM_DATA_W-1:8]
|
| 60 |
|
|
`define jmp_lz op_jmp_lz[MEM_DATA_W-1:8]
|
| 61 |
|
|
`define jmp_nlz op_jmp_nlz[MEM_DATA_W-1:8]
|
| 62 |
|
|
`define jmp op_jmp[MEM_DATA_W-1:8]
|
| 63 |
|
|
`define gto op_gto[MEM_DATA_W-1:8]
|
| 64 |
|
|
`define gsb op_gsb[MEM_DATA_W-1:8]
|
| 65 |
|
|
//
|
| 66 |
|
|
`define mem_irs op_mem_irs[MEM_DATA_W-1:12]
|
| 67 |
|
|
`define mem_irh op_mem_irh[MEM_DATA_W-1:12]
|
| 68 |
|
|
`define mem_iw op_mem_iw[MEM_DATA_W-1:12]
|
| 69 |
|
|
`define mem_iwh op_mem_iwh[MEM_DATA_W-1:12]
|
| 70 |
|
|
//
|
| 71 |
|
|
`define jmp_ie op_jmp_ie[MEM_DATA_W-1:12]
|
| 72 |
|
|
`define jmp_ine op_jmp_ine[MEM_DATA_W-1:12]
|
| 73 |
|
|
`define jmp_ils op_jmp_ils[MEM_DATA_W-1:12]
|
| 74 |
|
|
`define jmp_inls op_jmp_inls[MEM_DATA_W-1:12]
|
| 75 |
|
|
`define jmp_ilu op_jmp_ilu[MEM_DATA_W-1:12]
|
| 76 |
|
|
`define jmp_inlu op_jmp_inlu[MEM_DATA_W-1:12]
|
| 77 |
|
|
//
|
| 78 |
|
|
`define jmp_iz op_jmp_iz[MEM_DATA_W-1:10]
|
| 79 |
|
|
`define jmp_inz op_jmp_inz[MEM_DATA_W-1:10]
|
| 80 |
|
|
`define jmp_ilz op_jmp_ilz[MEM_DATA_W-1:10]
|
| 81 |
|
|
`define jmp_inlz op_jmp_inlz[MEM_DATA_W-1:10]
|
| 82 |
|
|
//
|
| 83 |
|
|
`define dat_is op_dat_is[MEM_DATA_W-1:10]
|
| 84 |
|
|
`define add_is op_add_is[MEM_DATA_W-1:10]
|
| 85 |
|
|
`define shl_is op_shl_is[MEM_DATA_W-1:10]
|
| 86 |
|
|
`define psu_i op_psu_i[MEM_DATA_W-1:10]
|
| 87 |
|
|
//
|
| 88 |
|
|
`define VER VER_ADDR[IM_W-1:0]
|
| 89 |
|
|
`define THRD_ID THRD_ID_ADDR[IM_W-1:0]
|
| 90 |
|
|
`define CLR CLR_ADDR[IM_W-1:0]
|
| 91 |
|
|
`define INTR_EN INTR_EN_ADDR[IM_W-1:0]
|
| 92 |
|
|
`define OP_ER OP_ER_ADDR[IM_W-1:0]
|
| 93 |
|
|
`define STK_ER STK_ER_ADDR[IM_W-1:0]
|
| 94 |
|
|
`define IO_LO IO_LO_ADDR[IM_W-1:0]
|
| 95 |
|
|
`define IO_HI IO_HI_ADDR[IM_W-1:0]
|
| 96 |
|
|
`define UART_RX UART_RX_ADDR[IM_W-1:0]
|
| 97 |
|
|
`define UART_TX UART_TX_ADDR[IM_W-1:0]
|