Line 5... |
Line 5... |
`define RN_IX 4'h1
|
`define RN_IX 4'h1
|
`define RN_IY 4'h2
|
`define RN_IY 4'h2
|
`define RN_U 4'h3
|
`define RN_U 4'h3
|
`define RN_S 4'h4
|
`define RN_S 4'h4
|
`define RN_PC 4'h5
|
`define RN_PC 4'h5
|
`define RN_MEM16 4'h6
|
//`define RN_MEM16 4'h6
|
`define RN_IMM16 4'h7
|
//`define RN_IMM16 4'h7
|
`define RN_ACCA 4'h8
|
`define RN_ACCA 4'h8
|
`define RN_ACCB 4'h9
|
`define RN_ACCB 4'h9
|
`define RN_CC 4'ha
|
`define RN_CC 4'ha
|
`define RN_DP 4'hb
|
`define RN_DP 4'hb
|
`define RN_MEM8 4'hc
|
//`define RN_MEM8 4'hc
|
`define RN_IMM8 4'hd
|
//`define RN_IMM8 4'hd
|
`define RN_INV 4'hf
|
`define RN_INV 4'hf
|
|
|
|
|
// opcodes that need an ALU result
|
// opcodes that need an ALU result
|
`define NOP 5'b00000
|
`define NOP 5'b00000
|
Line 43... |
Line 43... |
`define INC 5'b11000 // encoding of least 2 bits must be like ADD/SUB
|
`define INC 5'b11000 // encoding of least 2 bits must be like ADD/SUB
|
`define DEC 5'b11001
|
`define DEC 5'b11001
|
`define DAA 5'b11010
|
`define DAA 5'b11010
|
`define MUL 5'b11011
|
`define MUL 5'b11011
|
`define LEA 5'b11100
|
`define LEA 5'b11100
|
|
`define CLR 5'b11101
|
|
`define TST 5'b11110
|
|
|
/* Sequencer states */
|
/* Sequencer states */
|
|
|
`define SEQ_COLDRESET 'h00
|
`define SEQ_COLDRESET 'h00
|
`define SEQ_NMI 'h01
|
`define SEQ_NMI 'h01
|
Line 63... |
Line 65... |
`define SEQ_FETCH_3 'h0c
|
`define SEQ_FETCH_3 'h0c
|
`define SEQ_FETCH_4 'h0d
|
`define SEQ_FETCH_4 'h0d
|
`define SEQ_FETCH_5 'h0e
|
`define SEQ_FETCH_5 'h0e
|
|
|
`define SEQ_DECODE 'h0f
|
`define SEQ_DECODE 'h0f
|
`define SEQ_DECODE_P23 'h10
|
`define SEQ_DECODE_P23 'h10 // x
|
|
|
`define SEQ_GRAL_ALU 'h11
|
`define SEQ_GRAL_ALU 'h11
|
`define SEQ_GRAL_WBACK 'h12
|
`define SEQ_GRAL_WBACK 'h12
|
`define SEQ_CWAI_STACK 'h13 // stacks registers
|
`define SEQ_CWAI_STACK 'h13 // stacks registers
|
`define SEQ_CWAI_WAIT 'h14 // waits for an interrupt
|
`define SEQ_CWAI_WAIT 'h14 // waits for an interrupt
|
Line 80... |
Line 82... |
`define SEQ_IND_DECODE_OFS 'h1a // used to load 8 or 16 bits offset
|
`define SEQ_IND_DECODE_OFS 'h1a // used to load 8 or 16 bits offset
|
`define SEQ_JMP_LOAD_PC 'h1b
|
`define SEQ_JMP_LOAD_PC 'h1b
|
|
|
|
|
`define SEQ_JSR_PUSH 'h1c
|
`define SEQ_JSR_PUSH 'h1c
|
`define SEQ_JSR_PUSH_L 'h1d
|
`define SEQ_JSR_PUSH_L 'h1d // x
|
`define SEQ_RTS_POP_L 'h1e
|
`define SEQ_RTS_POP_L 'h1e // x
|
`define SEQ_RTS_POP_H 'h1f
|
`define SEQ_RTS_POP_H 'h1f // x
|
|
|
`define SEQ_PREPUSH 'h20
|
`define SEQ_PREPUSH 'h20
|
`define SEQ_PREPULL 'h21
|
`define SEQ_PREPULL 'h21
|
`define SEQ_PUSH_WRITE_L 'h22
|
`define SEQ_PUSH_WRITE_L 'h22
|
`define SEQ_PUSH_WRITE_L_1 'h23
|
`define SEQ_PUSH_WRITE_L_1 'h23
|
Line 141... |
Line 143... |
`define MSZ_16 2'h2
|
`define MSZ_16 2'h2
|
// Data transfer size, to save to register, used for data from memory and to save results to memory/registers
|
// Data transfer size, to save to register, used for data from memory and to save results to memory/registers
|
`define DSZ_0 2'h0
|
`define DSZ_0 2'h0
|
`define DSZ_8 2'h1
|
`define DSZ_8 2'h1
|
`define DSZ_16 2'h2
|
`define DSZ_16 2'h2
|
/*
|
/* Memory access type for input/output operands */
|
`define OP_NONE 3'h0
|
`define MT_NONE 3'h0
|
`define OP_PUSH 3'h1
|
`define MT_BYTE 3'h1
|
`define OP_PULL 3'h2
|
`define MT_WORD 3'h2
|
`define OP_RTS 3'h3
|
`define MT_QUAD 3'h3
|
`define OP_JSR 3'h4
|
|
`define OP_JMP 3'h5
|
|
`define OP_LEA 3'h6
|
|
`define OP_X 3'h7
|
|
*/
|
|
|
|
/* alu decoder right path modifier */
|
/* alu decoder right path modifier */
|
`define MOD_DEFAULT 2'h0
|
`define MOD_DEFAULT 2'h0
|
`define MOD_ONE 2'h1
|
`define MOD_ONE 2'h1
|
`define MOD_ZERO 2'h2
|
`define MOD_ZERO 2'h2
|
`define MOD_MINUS1 2'h3
|
`define MOD_MINUS1 2'h3
|
|
// Memory source address
|
`define MEMDEST_PC 2'h0
|
`define MEMDEST_PC 1'h0
|
`define MEMDEST_MH 2'h1
|
`define MEMDEST_MH 1'h1
|
`define MEMDEST_AH 2'h2
|
|
`define MEMDEST_I16 2'h3
|
|
|
|
No newline at end of file
|
No newline at end of file
|