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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [opencores.org/] [Mos6502/] [ip/] [core/] [rtl/] [verilog/] [defines] - Rev 131

Compare with Previous | Blame | View Log

`define RESET           4'b0000
`define HALT            4'b0001
`define AXE_1           4'b0011
`define FETCH_OP        4'b0100
`define EXECUTE         4'b0101
`define EXE_1           4'b0110
`define AXE_2           4'b0111
`define IDX_1           4'b1000
`define IDX_2           4'b1001
`define IDX_3           4'b1010
`define IDY_1           4'b1011
`define IDY_2           4'b1100
`define IDY_3           4'b1101
`define INT_1           4'b1110
`define INT_2           4'b1111







// alu_mode
`define  alu_mode_add             3'b000
`define  alu_mode_and             3'b001
`define  alu_mode_orr             3'b010
`define  alu_mode_eor             3'b011
`define  alu_mode_sfl             3'b100
`define  alu_mode_sfr             3'b101
`define  alu_mode_afl             3'b110
`define  alu_mode_afr             3'b111

// alu_op_a_sel

`define  alu_op_a_00              3'b000
`define  alu_op_a_acc             3'b001
`define  alu_op_a_x               3'b010
`define  alu_op_a_y               3'b011
`define  alu_op_a_ff              3'b100
`define  alu_op_a_psr             3'b101

// alu_op_b_sel

`define  alu_op_b_00              2'b00
`define  alu_op_b_imm             2'b01
`define  alu_op_b_stk             2'b10
`define  alu_op_b_opnd            2'b11

// alu_op_b_inv



// alu_op_c_sel

`define  alu_op_c_00              2'b00
`define  alu_op_c_01              2'b01
`define  alu_op_c_cin             2'b10
`define  alu_op_c_xx              2'b11


// alu_status_update
`define  alu_status_update_none   5'b00000
`define  alu_status_update_nz     5'b00001
`define  alu_status_update_nzc    5'b00011
`define  alu_status_update_nzcv   5'b00111
`define  alu_status_update_wr     5'b01000
`define  alu_status_update_z67    5'b10000
`define  alu_status_update_res    5'b11000



// dest
`define  dest_none                3'b000
`define  dest_alu_a               3'b001
`define  dest_alu_x               3'b010
`define  dest_alu_y               3'b011
`define  dest_mem                 3'b100


// ctrl
`define  ctrl_none                3'b000
`define  ctrl_jsr                 3'b001
`define  ctrl_jmp                 3'b010
`define  ctrl_jmp_ind             3'b011
`define  ctrl_brk                 3'b100
`define  ctrl_rti                 3'b101
`define  ctrl_rts                 3'b110
`define  ctrl_branch              3'b111

// cmd
`define  cmd_none                 2'b00
`define  cmd_run                  2'b01
`define  cmd_load_add             2'b10
`define  cmd_load_vec             2'b11


// ins_type
`define  ins_type_none            2'b00
`define  ins_type_read            2'b01
`define  ins_type_write           2'b10
`define  ins_type_rmw             2'b11


// idx_sel
`define  idx_sel_00               2'b00
`define  idx_sel_x                2'b01
`define  idx_sel_y                2'b10





////////////////////////////////////////////////////////////////////////////
////                                                                    ////
////                    Processor Status Register                       ////
////                                                                    ////
////////////////////////////////////////////////////////////////////////////
////                                                                    ////
//// C - Carry Flag                                                     ////
//// Z - Zero Flag                                                      ////
//// I - Interrupt Disable                                              ////
//// D - Decimal Mode                                                   ////
//// B - Break Command                                                  ////
//// 1 - Constant One                                                   ////
//// V - oVerflow Flag                                                  ////
//// N - Negative Flag                                                  ////
////                                                                    ////
////////////////////////////////////////////////////////////////////////////
////                                                                    ////
////        -------------------------------------------------           ////
////        |  N  |  V  |  1  |  B  |  D  |  I  |  Z  |  C  |           ////
////        -------------------------------------------------           ////
////                                                                    ////
////////////////////////////////////////////////////////////////////////////

`define   C      3'b000
`define   Z      3'b001
`define   I      3'b010
`define   D      3'b011
`define   B      3'b100
`define   V      3'b110
`define   N      3'b111



`define       ADC_IMM      8'h69
`define       ADC_ZPG      8'h65
`define       ADC_ZPX      8'h75
`define       ADC_ABS      8'h6D
`define       ADC_ABX      8'h7D
`define       ADC_ABY      8'h79
`define       ADC_IDX      8'h61
`define       ADC_IDY      8'h71

`define       AND_IMM      8'h29
`define       AND_ZPG      8'h25
`define       AND_ZPX      8'h35
`define       AND_ABS      8'h2D
`define       AND_ABX      8'h3D
`define       AND_ABY      8'h39
`define       AND_IDX      8'h21
`define       AND_IDY      8'h31

`define       ASL_ACC      8'h0A
`define       ASL_ZPG      8'h06
`define       ASL_ZPX      8'h16
`define       ASL_ABS      8'h0E
`define       ASL_ABX      8'h1E


`define       BCC_REL      8'h90
`define       BCS_REL      8'hB0
`define       BEQ_REL      8'hF0
`define       BMI_REL      8'h30
`define       BNE_REL      8'hD0
`define       BPL_REL      8'h10
`define       BVC_REL      8'h50
`define       BVS_REL      8'h70


`define       BIT_ZPG      8'h24
`define       BIT_ABS      8'h2C

`define       BRK_IMP      8'h00


`define       CLC_IMP      8'h18
`define       CLD_IMP      8'hD8
`define       CLI_IMP      8'h58
`define       CLV_IMP      8'hB8

`define       CMP_IMM      8'hC9
`define       CMP_ZPG      8'hC5
`define       CMP_ZPX      8'hD5
`define       CMP_ABS      8'hCD
`define       CMP_ABX      8'hDD
`define       CMP_ABY      8'hD9
`define       CMP_IDX      8'hC1
`define       CMP_IDY      8'hD1

`define       CPX_IMM      8'hE0
`define       CPX_ZPG      8'hE4
`define       CPX_ABS      8'hEC

`define       CPY_IMM      8'hC0
`define       CPY_ZPG      8'hC4
`define       CPY_ABS      8'hCC

`define       DEC_ZPG      8'hC6
`define       DEC_ZPX      8'hD6
`define       DEC_ABS      8'hCE
`define       DEC_ABX      8'hDE

`define       DEX_IMP      8'hCA

`define       DEY_IMP      8'h88

`define       EOR_IMM      8'h49
`define       EOR_ZPG      8'h45
`define       EOR_ZPX      8'h55
`define       EOR_ABS      8'h4D
`define       EOR_ABX      8'h5D
`define       EOR_ABY      8'h59
`define       EOR_IDX      8'h41
`define       EOR_IDY      8'h51

`define       INC_ZPG      8'hE6
`define       INC_ZPX      8'hF6
`define       INC_ABS      8'hEE
`define       INC_ABX      8'hFE

`define       INX_IMP      8'hE8

`define       INY_IMP      8'hC8

`define       JMP_ABS      8'h4C
`define       JMP_IND      8'h6C

`define       JSR_ABS      8'h20

`define       LDA_IMM      8'hA9
`define       LDA_ZPG      8'hA5
`define       LDA_ZPX      8'hB5
`define       LDA_ABS      8'hAD
`define       LDA_ABX      8'hBD
`define       LDA_ABY      8'hB9
`define       LDA_IDX      8'hA1
`define       LDA_IDY      8'hB1

`define       LDX_IMM      8'hA2
`define       LDX_ZPG      8'hA6
`define       LDX_ZPY      8'hB6
`define       LDX_ABS      8'hAE
`define       LDX_ABY      8'hBE

`define       LDY_IMM      8'hA0
`define       LDY_ZPG      8'hA4
`define       LDY_ZPX      8'hB4
`define       LDY_ABS      8'hAC
`define       LDY_ABX      8'hBC

`define       LSR_ACC      8'h4A
`define       LSR_ZPG      8'h46
`define       LSR_ZPX      8'h56
`define       LSR_ABS      8'h4E
`define       LSR_ABX      8'h5E

`define       NOP_IMP      8'hEA

`define       ORA_IMM      8'h09
`define       ORA_ZPG      8'h05
`define       ORA_ZPX      8'h15
`define       ORA_ABS      8'h0D
`define       ORA_ABX      8'h1D
`define       ORA_ABY      8'h19
`define       ORA_IDX      8'h01
`define       ORA_IDY      8'h11

`define       PHA_IMP      8'h48
`define       PHP_IMP      8'h08
`define       PLA_IMP      8'h68
`define       PLP_IMP      8'h28


`define       ROL_ACC      8'h2A
`define       ROL_ZPG      8'h26
`define       ROL_ZPX      8'h36
`define       ROL_ABS      8'h2E
`define       ROL_ABX      8'h3E

`define       ROR_ACC      8'h6A
`define       ROR_ZPG      8'h66
`define       ROR_ZPX      8'h76
`define       ROR_ABS      8'h6E
`define       ROR_ABX      8'h7E

`define       RTI_IMP      8'h40

`define       RTS_IMP      8'h60

`define       SBC_IMM      8'hE9
`define       SBC_ZPG      8'hE5
`define       SBC_ZPX      8'hF5
`define       SBC_ABS      8'hED
`define       SBC_ABX      8'hFD
`define       SBC_ABY      8'hF9
`define       SBC_IDX      8'hE1
`define       SBC_IDY      8'hF1

`define       SEC_IMP      8'h38
`define       SED_IMP      8'hF8
`define       SEI_IMP      8'h78

`define       STA_ZPG      8'h85
`define       STA_ZPX      8'h95
`define       STA_ABS      8'h8D
`define       STA_ABX      8'h9D
`define       STA_ABY      8'h99
`define       STA_IDX      8'h81
`define       STA_IDY      8'h91

`define       STX_ZPG      8'h86
`define       STX_ZPY      8'h96
`define       STX_ABS      8'h8E

`define       STY_ZPG      8'h84
`define       STY_ZPX      8'h94
`define       STY_ABS      8'h8C

`define       TAX_IMP      8'hAA
`define       TAY_IMP      8'hA8
`define       TXA_IMP      8'h8A
`define       TYA_IMP      8'h98


Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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