|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
//global
|
|
|
|
|
//ȫ<EFBFBD><EFBFBD>
|
|
|
|
|
`define RstEnable 1'b1
|
|
|
|
|
`define RstDisable 1'b0
|
|
|
|
|
`define ZeroWord 32'h00000000
|
|
|
|
@ -26,35 +26,31 @@
|
|
|
|
|
`define ChipDisable 1'b0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//instruction
|
|
|
|
|
`define EXE_ORI 6'b001101 // ORI
|
|
|
|
|
`define EXE_AND 6'b100100 // AND
|
|
|
|
|
`define EXE_OR 6'b100101 // OR
|
|
|
|
|
`define EXE_XOR 6'b100110 // XOR
|
|
|
|
|
`define EXE_NOR 6'b100111 // NOR
|
|
|
|
|
`define EXE_ANDI 6'b001100 // ANDI
|
|
|
|
|
`define EXE_ORI 6'b001101 // ORI
|
|
|
|
|
`define EXE_XORI 6'b001110 // XORI
|
|
|
|
|
`define EXE_LUI 6'b001111 // LUI
|
|
|
|
|
|
|
|
|
|
`define EXE_SLL 6'b000000 // SLL
|
|
|
|
|
`define EXE_SLLV 6'b000100 // SLLV
|
|
|
|
|
`define EXE_SRL 6'b000010 // SRL
|
|
|
|
|
`define EXE_SRLV 6'b000110 // SRLV
|
|
|
|
|
`define EXE_SRA 6'b000011 // SRA
|
|
|
|
|
`define EXE_SRAV 6'b000111 // SRAV
|
|
|
|
|
`define EXE_SYNC 6'b001111 // SYNC
|
|
|
|
|
`define EXE_PREF 6'b110011 // PREF
|
|
|
|
|
|
|
|
|
|
`define EXE_NOP 6'b000000 // NOP
|
|
|
|
|
`define EXE_SPECIAL_INST 6'b000000 // SPECIAL 类
|
|
|
|
|
|
|
|
|
|
`define EXE_MOVZ 6'b001010
|
|
|
|
|
`define EXE_MOVN 6'b001011
|
|
|
|
|
`define EXE_MFHI 6'b010000
|
|
|
|
|
`define EXE_MTHI 6'b010001
|
|
|
|
|
`define EXE_MFLO 6'b010010
|
|
|
|
|
`define EXE_MTLO 6'b010011
|
|
|
|
|
//ָ<EFBFBD><EFBFBD>
|
|
|
|
|
`define EXE_AND 6'b100100
|
|
|
|
|
`define EXE_OR 6'b100101
|
|
|
|
|
`define EXE_XOR 6'b100110
|
|
|
|
|
`define EXE_NOR 6'b100111
|
|
|
|
|
`define EXE_ANDI 6'b001100
|
|
|
|
|
`define EXE_ORI 6'b001101
|
|
|
|
|
`define EXE_XORI 6'b001110
|
|
|
|
|
`define EXE_LUI 6'b001111
|
|
|
|
|
|
|
|
|
|
`define EXE_SLL 6'b000000
|
|
|
|
|
`define EXE_SLLV 6'b000100
|
|
|
|
|
`define EXE_SRL 6'b000010
|
|
|
|
|
`define EXE_SRLV 6'b000110
|
|
|
|
|
`define EXE_SRA 6'b000011
|
|
|
|
|
`define EXE_SRAV 6'b000111
|
|
|
|
|
`define EXE_SYNC 6'b001111
|
|
|
|
|
`define EXE_PREF 6'b110011
|
|
|
|
|
|
|
|
|
|
`define EXE_NOP 6'b000000
|
|
|
|
|
`define SSNOP 32'b00000000000000000000000001000000
|
|
|
|
|
|
|
|
|
|
`define EXE_SPECIAL_INST 6'b000000
|
|
|
|
|
`define EXE_REGIMM_INST 6'b000001
|
|
|
|
|
`define EXE_SPECIAL2_INST 6'b011100
|
|
|
|
|
|
|
|
|
|
//AluOp
|
|
|
|
|
`define EXE_AND_OP 8'b00100100
|
|
|
|
@ -75,29 +71,21 @@
|
|
|
|
|
|
|
|
|
|
`define EXE_NOP_OP 8'b00000000
|
|
|
|
|
|
|
|
|
|
`define EXE_MOVZ_OP 8'b00001010
|
|
|
|
|
`define EXE_MOVN_OP 8'b00001011
|
|
|
|
|
`define EXE_MFHI_OP 8'b00010000
|
|
|
|
|
`define EXE_MTHI_OP 8'b00010001
|
|
|
|
|
`define EXE_MFLO_OP 8'b00010010
|
|
|
|
|
`define EXE_MTLO_OP 8'b00010011
|
|
|
|
|
|
|
|
|
|
//AluSel
|
|
|
|
|
`define EXE_RES_LOGIC 3'b001
|
|
|
|
|
`define EXE_RES_SHIFT 3'b010
|
|
|
|
|
`define EXE_RES_MOVE 3'b011
|
|
|
|
|
|
|
|
|
|
`define EXE_RES_NOP 3'b000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//inst_rom
|
|
|
|
|
//ָ<EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD>inst_rom
|
|
|
|
|
`define InstAddrBus 31:0
|
|
|
|
|
`define InstBus 31:0
|
|
|
|
|
`define InstMemNum 131071
|
|
|
|
|
`define InstMemNumLog2 17
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//regfile
|
|
|
|
|
//ͨ<EFBFBD>üĴ<EFBFBD><EFBFBD><EFBFBD>regfile
|
|
|
|
|
`define RegAddrBus 4:0
|
|
|
|
|
`define RegBus 31:0
|
|
|
|
|
`define RegWidth 32
|
|
|
|
@ -106,4 +94,3 @@
|
|
|
|
|
`define RegNum 32
|
|
|
|
|
`define RegNumLog2 5
|
|
|
|
|
`define NOPRegAddr 5'b00000
|
|
|
|
|
|
|
|
|
|