URL
https://opencores.org/ocsvn/yacc/yacc/trunk
Subversion Repositories yacc
[/] [yacc/] [trunk/] [syn/] [xilinx/] [define.BAK] - Rev 2
Go to most recent revision | Compare with Previous | Blame | View Log
//Jul.11.2004
`define LONG_ACCESS 2'b00
`define WORD_ACCESS 2'b01
`define BYTE_ACCESS 2'b10
//Shift
//`define SHIFT_NOTHING 2'b00
`define SHIFT_LEFT 2'b01
`define SHIFT_RIGHT_UNSIGNED 2'b10
`define SHIFT_RIGHT_SIGNED 2'b11
//ALU
`define ALU_NOTHING 4'b0000
`define ALU_ADD 4'b0001
`define ALU_SUBTRACT 4'b0010
`define ALU_LESS_THAN_UNSIGNED 4'b0101 //Jul.5.2004
`define ALU_LESS_THAN_SIGNED 4'b0100 //Jul.5.2004
`define ALU_OR 4'b0011
`define ALU_AND 4'b0110
`define ALU_XOR 4'b0111
`define ALU_NOR 4'b1000
//`define ALU_NOR 4'b0000 //Jul.6.2004
//PC
`define PC_INC 3'b000
`define PC_HOLD 3'b001
`define PC_IMM 3'b010
`define PC_IMM_PLUS 3'b011
`define PC_REG 3'b100
//`define FLAG_SEL 3'b101
`define PC_FLAG_SEL16 3'b101
`define PC_DEC 3'b110
//ALU Right SEL
`define Imm_signed 2'b00
`define Imm_unsigned 2'b01
`define A_RIGHT_ERT 2'b10
`define IMM_26_SEL 2'b11
//ALU_LEFT_SEL
`define PC_SEL 1'b1
//Shift amount Sel
`define A_sel 1'b0
`define Ers_d2_sel
//Memory_Signed_extenstion
`define M_unsigned 1'b0
`define M_signed 1'b1
//RRegSel
`define MOUT_SEL 2'b00
`define NREG_SEL 2'b01
//AREG ALU/MUL_SEL
//2'b00 => ALU_SEL
`define MUL_hi_SEL 2'b10
`define MUL_lo_SEL 2'b11
//RF_INPUT SEL
`define RF_ALU_sel 2'b00
`define RF_Shifter_sel 2'b01
`define RF_PC_SEL 2'b010
`define SHIFT16_SEL 2'b11
//MUX
//`define STRAIGHT 2'b00
//`define AREG_SEL 2'b01
//`define RREG_SEL 2'b11
//RF INPUT ADDRESS
`define RF_Ert_sel 2'b00
`define RF_Erd_sel 2'b01
`define RF_R15_SEL 2'b10
`define RF_INTR_SEL 2'b11
`define Last_Reg 31
`define Intr_Reg 26 // Jul.7.2004 TRY FOR OS,, Use R26 as Interrput Return address.
//OPCODE
`define add 6'b100000
`define addu 6'b100001
`define addi 6'b001000
`define addiu 6'b001001
`define sub 6'b100010
`define subu 6'b100011
`define and 6'b100100
`define andi 6'b001100
`define nor 6'b100111
`define or 6'b100101
`define ori 6'b001101
`define lsl 6'b000000
`define asr 6'b000011
`define lsr 6'b000010
`define sllv 6'b000100
`define srav 6'b000111
`define srlv 6'b000110
`define xor 6'b100110
`define xori 6'b001110
`define lui 6'b001111
`define comp_signed 6'b101010
`define comp_unsigned 6'b101011 //Jun.29.2004
`define comp_im_signed 6'b001010
`define comp_im_unsigned 6'b001011 //Jun.29.2004
`define beq 6'b000100
`define bgtz 6'b000111
`define blez 6'b000110
`define bne 6'b000101
//opecode "000001" => [20:16] Special Opecode
`define bltzal 5'b10000 //unsupported
`define bltz 5'b00000
`define bgez 5'b00001
`define bltzall 5'b10010 //unsupprted
`define bltzl 5'b00010 //unsupported
`define bgezall 5'b10011 //unsupported
`define bgezl 5'b00011 //unsupported
`define jump 6'b000010
`define jump_and_link_im 6'b000011
`define jump_and_link_register 6'b001001
`define jmp_register 6'b001000
//Load Instructions
`define loadbyte_signed 6'b100000
`define loadbyte_unsigned 6'b100100
`define loadword_signed 6'b100001
`define loadword_unsigned 6'b100101
`define loadlong 6'b100011
//Store Instructions
`define storebyte 6'b101000
`define storeword 6'b101001
`define storelong 6'b101011
//Exception and Interrupt Instructions
`define softwave_interrupt 6'b011010
`define divs 6'b011010
`define divu 6'b011011
`define muls 6'b011000
`define mulu 6'b011001
`define mfhi 6'b010000
`define mflo 6'b010010
`define MUL_DIV_WORD_ACCESS 1'b1
`define MUL_DIV_BYTE_ACCESS 1'b0
`define MUL_DIV_MUL_SEL 1'b0
`define mult_nothing 4'b0000
`define mult_read_lo 4'b0000
`define mult_read_hi 4'b0001
`define mult_write_lo 4'b0011
`define mult_write_hi 4'b0100
`define mult_mult 4'b1000
`define mult_signed_mult 4'b1010
`define mult_divide 4'b1100
`define mult_signed_divide 4'b1110
`define SHIFT_AMOUNT_IMM_SEL 1'b0
`define SHIFT_AMOUNT_REG_SEL 1'b1
//`define RAM4K
`define RAM16K
//`define RAM32K
//UART PORT RATE SELECT
`define COUNTER_VALUE1 216 //4 times 115.2kbps for clock=50MHz
`define COUNTER_VALUE2 (`COUNTER_VALUE1*2+1)
`define COUNTER_VALUE3 (`COUNTER_VALUE1+3)
//`define RTL_SIMULATION //comment out for synthesis
//`define ALTERA //comment out if XILINX is used
`define XILINX //comment out if Altera is used
//IO Map
// All access must be 32bit word
//3f80 usuall SP address (set by program)
//16KRAM
// 3fc0-3fef : AES reserved
// 3ff0 : debug port
// 3ff4 : debug port long
// 3ff8 : interrupt set address
// 3ffc : uart port
// 3ffc : [7:0] write_port/read_port
// [8] write_busy
// [31:9] :reserved
`define Print_Port_Address 16'h3ff0 //ATMEL Big Endian
`define Print_CAHR_Port_Address 16'h3ff1
`define Print_INT_Port_Address 16'h3ff2 //First ADDRESS
`define Print_LONG_Port_Address 16'h3ff4 //First ADDRESS
`define UART_PORT_ADDRESS 16'h3ffc //
`define INTERUPPT_ADDRESS 16'h3ff8 //
Go to most recent revision | Compare with Previous | Blame | View Log