URL
https://opencores.org/ocsvn/rf6809/rf6809/trunk
Subversion Repositories rf6809
[/] [rf6809/] [trunk/] [rtl/] [cpu/] [rf6809_pkg.sv] - Rev 22
Compare with Previous | Blame | View Log
package rf6809_pkg;typedef logic [23:0] Address;typedef logic [11:0] Data;// Breakpoint Control Register// One for each breakpoint address registertypedef struct packed{logic hit;logic [2:0] pad;logic en;logic trace_en;logic [1:0] match_type;logic [3:0] amask;} brkCtrl;// Breakpoint match typesparameter BMT_IA = 2'd0;parameter BMT_DS = 2'd1;parameter BMT_LS = 2'd3;parameter bitsPerByte = $bits(Data);parameter BPB = bitsPerByte;parameter BPBM1 = BPB-1;parameter BPBX2M1 = BPB*2-1;// The following adds support for many 6309 instructions.`define SUPPORT_6309 1// Support BCD arithmetic mode and the decimal mode flag`define SUPPORT_BCD 1// Support divide operations`define SUPPORT_DIVIDE 1`define SUPPORT_DEBUG_REG 1// The following allows asynchronous reads for icache updating.// It increases the size of the core.//`define SUPPORT_AREAD 1// The following includes an instruction buffer when icache is// not used.//`define SUPPORT_IBUF 1// The following enables support for the checkpoint interrupt.//`define SUPPORT_CHECKPOINT//`define EIGHTBIT 1`define TWELVEBIT 2`ifdef EIGHTBIT`define LOBYTE 7:0`define HIBYTE 15:8`define DBLBYTE 15:0`define TRPBYTE 23:0`define QUADBYTE 31:0`define BYTE1 7:0`define BYTE2 15:8`define BYTE3 23:16`define BYTE4 31:24`define BYTE5 39:32`define QUINBYTE 47:0`define HEXBYTE 55:0`define DBLBYTEP1 16:0`define LOBYTEP1 8:0`define HCBIT 3`endif`ifdef TWELVEBIT`define LOBYTE 11:0`define HIBYTE 23:12`define DBLBYTE 23:0`define TRPBYTE 35:0`define QUADBYTE 47:0`define BYTE1 11:0`define BYTE2 23:12`define BYTE3 35:24`define BYTE4 47:36`define BYTE5 59:48`define QUINBYTE 59:0`define HEXBYTE 71:0`define DBLBYTEP1 24:0`define LOBYTEP1 12:0`define HCBIT 3`endif`define TRUE 1'b1`define FALSE 1'b0`define RST_VECT 24'hFFFFFE`define NMI_VECT 24'hFFFFFC`define SWI_VECT 24'hFFFFFA`define IRQ_VECT 24'hFFFFF8`define FIRQ_VECT 24'hFFFFF6`define SWI2_VECT 24'hFFFFF4`define SWI3_VECT 24'hFFFFF2`define IOP_VECT 24'hFFFFF0`define IPL7_VECT 24'hFFFFEE`define IPL6_VECT 24'hFFFFEC`define IPL5_VECT 24'hFFFFEA`define IPL4_VECT 24'hFFFFE8`define IPL3_VECT 24'hFFFFE6`define IPL2_VECT 24'hFFFFE4`define IPL1_VECT 24'hFFFFE2`define DBG_VECT 24'hFFFFE0`define MSCOUNT 24'hFFFF14`define CHKPOINT 24'hFFFF11`define CORENO 24'hFFFF10`define BRKCTRL3 24'hFFFF0B`define BRKCTRL2 24'hFFFF0A`define BRKCTRL1 24'hFFFF09`define BRKCTRL0 24'hFFFF08`define BRKAD3 24'hFFFF06`define BRKAD2 24'hFFFF04`define BRKAD1 24'hFFFF02`define BRKAD0 24'hFFFF00`define NEG_DP 12'h000`define OIM_DP 12'h001`define AIM_DP 12'h002`define COM_DP 12'h003`define LSR_DP 12'h004`define EIM_DP 12'h005`define ROR_DP 12'h006`define ASR_DP 12'h007`define ASL_DP 12'h008`define ROL_DP 12'h009`define DEC_DP 12'h00A`define TIM_DP 12'h00B`define INC_DP 12'h00C`define TST_DP 12'h00D`define JMP_DP 12'h00E`define CLR_DP 12'h00F`define PG2 12'h010`define PG3 12'h011`define NOP 12'h012`define SYNC 12'h013`define SEXW 12'h014`define FAR 12'h015`define LBRA 12'h016`define LBSR 12'h017`define DAA 12'h019`define ORCC 12'h01A`define OUTER 12'h01B`define ANDCC 12'h01C`define SEX 12'h01D`define EXG 12'h01E`define TFR 12'h01F`define BRA 12'h020`define BRN 12'h021`define BHI 12'h022`define BLS 12'h023`define BHS 12'h024`define BLO 12'h025`define BNE 12'h026`define BEQ 12'h027`define BVC 12'h028`define BVS 12'h029`define BPL 12'h02A`define BMI 12'h02B`define BGE 12'h02C`define BLT 12'h02D`define BGT 12'h02E`define BLE 12'h02F`define LEAX_NDX 12'h030`define LEAY_NDX 12'h031`define LEAS_NDX 12'h032`define LEAU_NDX 12'h033`define PSHS 12'h034`define PULS 12'h035`define PSHU 12'h036`define PULU 12'h037`define RTF 12'h038`define RTS 12'h039`define ABX 12'h03A`define RTI 12'h03B`define CWAI 12'h03C`define MUL 12'h03D`define SWI 12'h03F`define NEGA 12'h040`define COMA 12'h043`define LSRA 12'h044`define RORA 12'h046`define ASRA 12'h047`define ASLA 12'h048`define ROLA 12'h049`define DECA 12'h04A`define INCA 12'h04C`define TSTA 12'h04D`define CLRA 12'h04F`define NEGB 12'h050`define COMB 12'h053`define LSRB 12'h054`define RORB 12'h056`define ASRB 12'h057`define ASLB 12'h058`define ROLB 12'h059`define DECB 12'h05A`define INCB 12'h05C`define TSTB 12'h05D`define CLRB 12'h05F`define NEG_NDX 12'h060`define OIM_NDX 12'h061`define AIM_NDX 12'h062`define COM_NDX 12'h063`define LSR_NDX 12'h064`define EIM_NDX 12'h065`define ROR_NDX 12'h066`define ASR_NDX 12'h067`define ASL_NDX 12'h068`define ROL_NDX 12'h069`define DEC_NDX 12'h06A`define TIM_NDX 12'h06B`define INC_NDX 12'h06C`define TST_NDX 12'h06D`define JMP_NDX 12'h06E`define CLR_NDX 12'h06F`define NEG_EXT 12'h070`define OIM_EXT 12'h071`define AIM_EXT 12'h072`define COM_EXT 12'h073`define LSR_EXT 12'h074`define EIM_EXT 12'h075`define ROR_EXT 12'h076`define ASR_EXT 12'h077`define ASL_EXT 12'h078`define ROL_EXT 12'h079`define DEC_EXT 12'h07A`define TIM_EXT 12'h07B`define INC_EXT 12'h07C`define TST_EXT 12'h07D`define JMP_EXT 12'h07E`define CLR_EXT 12'h07F`define SUBA_IMM 12'h080`define CMPA_IMM 12'h081`define SBCA_IMM 12'h082`define SUBD_IMM 12'h083`define ANDA_IMM 12'h084`define BITA_IMM 12'h085`define LDA_IMM 12'h086`define EORA_IMM 12'h088`define ADCA_IMM 12'h089`define ORA_IMM 12'h08A`define ADDA_IMM 12'h08B`define CMPX_IMM 12'h08C`define BSR 12'h08D`define LDX_IMM 12'h08E`define JMP_FAR 12'h08F`define SUBA_DP 12'h090`define CMPA_DP 12'h091`define SBCA_DP 12'h092`define SUBD_DP 12'h093`define ANDA_DP 12'h094`define BITA_DP 12'h095`define LDA_DP 12'h096`define STA_DP 12'h097`define EORA_DP 12'h098`define ADCA_DP 12'h099`define ORA_DP 12'h09A`define ADDA_DP 12'h09B`define CMPX_DP 12'h09C`define JSR_DP 12'h09D`define LDX_DP 12'h09E`define STX_DP 12'h09F`define SUBA_NDX 12'h0A0`define CMPA_NDX 12'h0A1`define SBCA_NDX 12'h0A2`define SUBD_NDX 12'h0A3`define ANDA_NDX 12'h0A4`define BITA_NDX 12'h0A5`define LDA_NDX 12'h0A6`define STA_NDX 12'h0A7`define EORA_NDX 12'h0A8`define ADCA_NDX 12'h0A9`define ORA_NDX 12'h0AA`define ADDA_NDX 12'h0AB`define CMPX_NDX 12'h0AC`define JSR_NDX 12'h0AD`define LDX_NDX 12'h0AE`define STX_NDX 12'h0AF`define SUBA_EXT 12'h0B0`define CMPA_EXT 12'h0B1`define SBCA_EXT 12'h0B2`define SUBD_EXT 12'h0B3`define ANDA_EXT 12'h0B4`define BITA_EXT 12'h0B5`define LDA_EXT 12'h0B6`define STA_EXT 12'h0B7`define EORA_EXT 12'h0B8`define ADCA_EXT 12'h0B9`define ORA_EXT 12'h0BA`define ADDA_EXT 12'h0BB`define CMPX_EXT 12'h0BC`define JSR_EXT 12'h0BD`define LDX_EXT 12'h0BE`define STX_EXT 12'h0BF`define SUBB_IMM 12'h0C0`define CMPB_IMM 12'h0C1`define SBCB_IMM 12'h0C2`define ADDD_IMM 12'h0C3`define ANDB_IMM 12'h0C4`define BITB_IMM 12'h0C5`define LDB_IMM 12'h0C6`define EORB_IMM 12'h0C8`define ADCB_IMM 12'h0C9`define ORB_IMM 12'h0CA`define ADDB_IMM 12'h0CB`define LDD_IMM 12'h0CC`define LDQ_IMM 12'h0CD`define LDU_IMM 12'h0CE`define JSR_FAR 12'h0CF`define SUBB_DP 12'h0D0`define CMPB_DP 12'h0D1`define SBCB_DP 12'h0D2`define ADDD_DP 12'h0D3`define ANDB_DP 12'h0D4`define BITB_DP 12'h0D5`define LDB_DP 12'h0D6`define STB_DP 12'h0D7`define EORB_DP 12'h0D8`define ADCB_DP 12'h0D9`define ORB_DP 12'h0DA`define ADDB_DP 12'h0DB`define LDD_DP 12'h0DC`define STD_DP 12'h0DD`define LDU_DP 12'h0DE`define STU_DP 12'h0DF`define SUBB_NDX 12'h0E0`define CMPB_NDX 12'h0E1`define SBCB_NDX 12'h0E2`define ADDD_NDX 12'h0E3`define ANDB_NDX 12'h0E4`define BITB_NDX 12'h0E5`define LDB_NDX 12'h0E6`define STB_NDX 12'h0E7`define EORB_NDX 12'h0E8`define ADCB_NDX 12'h0E9`define ORB_NDX 12'h0EA`define ADDB_NDX 12'h0EB`define LDD_NDX 12'h0EC`define STD_NDX 12'h0ED`define LDU_NDX 12'h0EE`define STU_NDX 12'h0EF`define SUBB_EXT 12'h0F0`define CMPB_EXT 12'h0F1`define SBCB_EXT 12'h0F2`define ADDD_EXT 12'h0F3`define ANDB_EXT 12'h0F4`define BITB_EXT 12'h0F5`define LDB_EXT 12'h0F6`define STB_EXT 12'h0F7`define EORB_EXT 12'h0F8`define ADCB_EXT 12'h0F9`define ORB_EXT 12'h0FA`define ADDB_EXT 12'h0FB`define LDD_EXT 12'h0FC`define STD_EXT 12'h0FD`define LDU_EXT 12'h0FE`define STU_EXT 12'h0FF`define TFS 12'h11E`define TTS 12'h11F`define LBRN 12'h121`define LBHI 12'h122`define LBLS 12'h123`define LBHS 12'h124`define LBLO 12'h125`define LBNE 12'h126`define LBEQ 12'h127`define LBVC 12'h128`define LBVS 12'h129`define LBPL 12'h12A`define LBMI 12'h12B`define LBGE 12'h12C`define LBLT 12'h12D`define LBGT 12'h12E`define LBLE 12'h12F`define ADDR 12'h130`define ADCR 12'h131`define SUBR 12'h132`define SBCR 12'h133`define ANDR 12'h134`define ORR 12'h135`define EORR 12'h136`define CMPR 12'h137`define SWI2 12'h13F`define NEGD 12'h140`define COMD 12'h143`define LSRD 12'h144`define RORD 12'h146`define ASRD 12'h147`define ASLD 12'h148`define ROLD 12'h149`define DECD 12'h14A`define INCD 12'h14C`define TSTD 12'h14D`define CLRD 12'h14F`define COMW 12'h153`define LSRW 12'h154`define RORW 12'h156`define ROLW 12'h159`define DECW 12'h15A`define INCW 12'h15C`define TSTW 12'h15D`define CLRW 12'h15F`define SUBW_IMM 12'h180`define CMPW_IMM 12'h181`define SBCD_IMM 12'h182`define CMPD_IMM 12'h183`define ANDD_IMM 12'h184`define BITD_IMM 12'h185`define LDW_IMM 12'h186`define EORD_IMM 12'h188`define ADCD_IMM 12'h189`define ORD_IMM 12'h18A`define ADDW_IMM 12'h18B`define CMPY_IMM 12'h18C`define LDY_IMM 12'h18E`define SUBW_DP 12'h190`define CMPW_DP 12'h191`define SBCD_DP 12'h192`define CMPD_DP 12'h193`define ANDD_DP 12'h194`define BITD_DP 12'h195`define LDW_DP 12'h196`define STW_DP 12'h197`define EORD_DP 12'h198`define ADCD_DP 12'h199`define ORD_DP 12'h19A`define ADDW_DP 12'h19B`define CMPY_DP 12'h19C`define LDY_DP 12'h19E`define STY_DP 12'h19F`define SUBW_NDX 12'h1A0`define CMPW_NDX 12'h1A1`define SBCD_NDX 12'h1A2`define CMPD_NDX 12'h1A3`define ANDD_NDX 12'h1A4`define BITD_NDX 12'h1A5`define LDW_NDX 12'h1A6`define STW_NDX 12'h1A7`define EORD_NDX 12'h1A8`define ADCD_NDX 12'h1A9`define ORD_NDX 12'h1AA`define ADDW_NDX 12'h1AB`define CMPY_NDX 12'h1AC`define LDY_NDX 12'h1AE`define STY_NDX 12'h1AF`define SUBW_EXT 12'h1B0`define CMPW_EXT 12'h1B1`define SBCD_EXT 12'h1B2`define CMPD_EXT 12'h1B3`define ANDD_EXT 12'h1B4`define BITD_EXT 12'h1B5`define LDW_EXT 12'h1B6`define STW_EXT 12'h1B7`define EORD_EXT 12'h1B8`define ADCD_EXT 12'h1B9`define ORD_EXT 12'h1BA`define ADDW_EXT 12'h1BB`define CMPY_EXT 12'h1BC`define LDY_EXT 12'h1BE`define STY_EXT 12'h1BF`define LDS_IMM 12'h1CE`define LDQ_DP 12'h1DC`define STQ_DP 12'h1DD`define LDS_DP 12'h1DE`define STS_DP 12'h1DF`define LDQ_NDX 12'h1EC`define STQ_NDX 12'h1ED`define LDS_NDX 12'h1EE`define STS_NDX 12'h1EF`define LDQ_EXT 12'h1FC`define STQ_EXT 12'h1FD`define LDS_EXT 12'h1FE`define STS_EXT 12'h1FF`define BITMD 12'h23C`define LDMD 12'h23D`define SWI3 12'h23F`define COME 12'h243`define DECE 12'h24A`define INCE 12'h24C`define TSTE 12'h24D`define CLRE 12'h24F`define COMF 12'h253`define DECF 12'h25A`define INCF 12'h25C`define TSTF 12'h25D`define CLRF 12'h25F`define SUBE_IMM 12'h280`define CMPU_IMM 12'h283`define LDE_IMM 12'h286`define ADDE_IMM 12'h28B`define DIVD_IMM 12'h28D`define DIVQ_IMM 12'h28E`define MULD_IMM 12'h28F`define SUBE_DP 12'h290`define LDE_DP 12'h296`define ADDE_DP 12'h29B`define DIVD_DP 12'h29D`define DIVQ_DP 12'h29E`define MULD_DP 12'h29F`define SUBE_NDX 12'h2A0`define LDE_NDX 12'h2A6`define ADDE_NDX 12'h2AB`define DIVD_NDX 12'h2AD`define DIVQ_NDX 12'h2AE`define MULD_NDX 12'h2AF`define SUBE_EXT 12'h2B0`define LDE_EXT 12'h2B6`define ADDE_EXT 12'h2BB`define DIVD_EXT 12'h2BD`define DIVQ_EXT 12'h2BE`define MULD_EXT 12'h2BF`define SUBF_IMM 12'h2C0`define LDF_IMM 12'h2C6`define ADDF_IMM 12'h2CB`define SUBF_DP 12'h2D0`define LDF_DP 12'h2D6`define ADDF_DP 12'h2DB`define SUBF_NDX 12'h2E0`define LDF_NDX 12'h2E6`define ADDF_NDX 12'h2EB`define SUBF_EXT 12'h2F0`define LDF_EXT 12'h2F6`define ADDF_EXT 12'h2FB`define CMPE_IMM 12'h281`define CMPE_DP 12'h291`define STE_DP 12'h297`define STE_NDX 12'h2A7`define STE_EXT 12'h2B7`define STF_DP 12'h2D7`define STF_NDX 12'h2E7`define STF_EXT 12'h2F7`define CMPE_NDX 12'h2A1`define CMPE_EXT 12'h2B1`define CMPF_IMM 12'h2C1`define CMPF_DP 12'h2D1`define CMPF_NDX 12'h2E1`define CMPF_EXT 12'h2F1`define CMPS_IMM 12'h28C`define CMPU_DP 12'h293`define CMPS_DP 12'h29C`define CMPU_NDX 12'h2A3`define CMPS_NDX 12'h2AC`define CMPU_EXT 12'h2B3`define CMPS_EXT 12'h2BC// Unused opcode`define INT 12'h33E`define LW_CCR 6'd0`define LW_ACCA 6'd1`define LW_ACCB 6'd2`define LW_DPR 6'd3`define LW_XH 6'd4`define LW_XL 6'd5`define LW_YH 6'd6`define LW_YL 6'd7`define LW_USPH 6'd8`define LW_USPL 6'd9`define LW_SSPH 6'd10`define LW_SSPL 6'd11`define LW_PCH 6'd12`define LW_PCL 6'd13`define LW_BL 6'd14`define LW_BH 6'd15`define LW_IAL 6'd16`define LW_IAH 6'd17`define LW_PC3124 6'd18`define LW_PC2316 6'd19`define LW_IA3124 6'd20`define LW_IA2316 6'd21`define LW_B3124 6'd22`define LW_B2316 6'd23`define LW_X3124 6'd24`define LW_X2316 6'd25`define LW_Y3124 6'd26`define LW_Y2316 6'd27`define LW_USP3124 6'd28`define LW_USP2316 6'd29`define LW_SSP3124 6'd30`define LW_SSP2316 6'd31`define LW_ACCE 6'd32`define LW_ACCF 6'd33`define LW_NOTHING 6'd63`define SW_ACCDH 6'd0`define SW_ACCDL 6'd1`define SW_ACCA 6'd2`define SW_ACCB 6'd3`define SW_DPR 6'd4`define SW_XL 6'd5`define SW_XH 6'd6`define SW_YL 6'd7`define SW_YH 6'd8`define SW_USPL 6'd9`define SW_USPH 6'd10`define SW_SSPL 6'd11`define SW_SSPH 6'd12`define SW_PCH 6'd13`define SW_PCL 6'd14`define SW_CCR 6'd15`define SW_RES8 6'd16`define SW_RES16L 6'd17`define SW_RES16H 6'd18`define SW_DEF8 6'd19`define SW_PC3124 6'd20`define SW_PC2316 6'd21`define SW_ACCQ3124 6'd22`define SW_ACCQ2316 6'd23`define SW_ACCQ158 6'd24`define SW_ACCQ70 6'd25`define SW_X3124 6'd26`define SW_X2316 6'd27`define SW_Y3124 6'd28`define SW_Y2316 6'd29`define SW_USP3124 6'd30`define SW_USP2316 6'd31`define SW_SSP3124 6'd32`define SW_SSP2316 6'd33`define SW_ACCA3124 6'd34`define SW_ACCA2316 6'd35`define SW_ACCA158 6'd36`define SW_ACCA70 6'd37`define SW_ACCB3124 6'd38`define SW_ACCB2316 6'd39`define SW_ACCB158 6'd40`define SW_ACCB70 6'd41`define SW_ACCE 6'd42`define SW_ACCF 6'd43`define SW_ACCWH 6'd44`define SW_ACCWL 6'd45`define SW_NOTHING 6'd63endpackage
