fix: pass remaining riscv isa tests
This commit is contained in:
@@ -19,6 +19,7 @@ module Core(
|
||||
wire _backend_io_decodeReady;
|
||||
wire _backend_io_flush;
|
||||
wire [63:0] _backend_io_redirectPc;
|
||||
wire _backend_io_invalidateICache;
|
||||
wire _id_io_outValid_0;
|
||||
wire _id_io_outValid_1;
|
||||
wire [63:0] _id_io_out_0_pc;
|
||||
@@ -35,6 +36,7 @@ module Core(
|
||||
wire [3:0] _id_io_out_0_opClass;
|
||||
wire [4:0] _id_io_out_0_aluFn;
|
||||
wire [2:0] _id_io_out_0_memWidth;
|
||||
wire _id_io_out_0_memSigned;
|
||||
wire _id_io_out_0_isLoad;
|
||||
wire _id_io_out_0_isStore;
|
||||
wire _id_io_out_0_isBranch;
|
||||
@@ -45,6 +47,9 @@ module Core(
|
||||
wire _id_io_out_0_isOpImm;
|
||||
wire _id_io_out_0_isWord;
|
||||
wire _id_io_out_0_isSystem;
|
||||
wire _id_io_out_0_isFenceI;
|
||||
wire _id_io_out_0_isAmo;
|
||||
wire [4:0] _id_io_out_0_amoOp;
|
||||
wire _id_io_out_0_writesRd;
|
||||
wire _id_io_out_0_illegal;
|
||||
wire [63:0] _id_io_out_1_pc;
|
||||
@@ -61,6 +66,7 @@ module Core(
|
||||
wire [3:0] _id_io_out_1_opClass;
|
||||
wire [4:0] _id_io_out_1_aluFn;
|
||||
wire [2:0] _id_io_out_1_memWidth;
|
||||
wire _id_io_out_1_memSigned;
|
||||
wire _id_io_out_1_isLoad;
|
||||
wire _id_io_out_1_isStore;
|
||||
wire _id_io_out_1_isBranch;
|
||||
@@ -71,6 +77,9 @@ module Core(
|
||||
wire _id_io_out_1_isOpImm;
|
||||
wire _id_io_out_1_isWord;
|
||||
wire _id_io_out_1_isSystem;
|
||||
wire _id_io_out_1_isFenceI;
|
||||
wire _id_io_out_1_isAmo;
|
||||
wire [4:0] _id_io_out_1_amoOp;
|
||||
wire _id_io_out_1_writesRd;
|
||||
wire _id_io_out_1_illegal;
|
||||
wire _frontend_io_outValid;
|
||||
@@ -103,152 +112,170 @@ module Core(
|
||||
end
|
||||
end // always @(posedge)
|
||||
Frontend frontend (
|
||||
.clock (clock),
|
||||
.reset (reset),
|
||||
.io_redirectValid (_backend_io_flush),
|
||||
.io_redirectPc (_backend_io_redirectPc),
|
||||
.io_imemReqValid (io_imem_req_valid),
|
||||
.io_imemReqAddr (io_imem_req_bits),
|
||||
.io_imemRespValid (io_imem_resp_valid),
|
||||
.io_imemRespBits_0 (io_imem_resp_bits_0),
|
||||
.io_imemRespBits_1 (io_imem_resp_bits_1),
|
||||
.io_outReady (fetchReady),
|
||||
.io_outValid (_frontend_io_outValid),
|
||||
.io_out_pc (_frontend_io_out_pc),
|
||||
.io_out_inst_0 (_frontend_io_out_inst_0),
|
||||
.io_out_inst_1 (_frontend_io_out_inst_1),
|
||||
.io_out_laneValid_0 (_frontend_io_out_laneValid_0),
|
||||
.io_out_laneValid_1 (_frontend_io_out_laneValid_1)
|
||||
.clock (clock),
|
||||
.reset (reset),
|
||||
.io_redirectValid (_backend_io_flush),
|
||||
.io_redirectPc (_backend_io_redirectPc),
|
||||
.io_invalidateICache (_backend_io_invalidateICache),
|
||||
.io_imemReqValid (io_imem_req_valid),
|
||||
.io_imemReqAddr (io_imem_req_bits),
|
||||
.io_imemRespValid (io_imem_resp_valid),
|
||||
.io_imemRespBits_0 (io_imem_resp_bits_0),
|
||||
.io_imemRespBits_1 (io_imem_resp_bits_1),
|
||||
.io_outReady (fetchReady),
|
||||
.io_outValid (_frontend_io_outValid),
|
||||
.io_out_pc (_frontend_io_out_pc),
|
||||
.io_out_inst_0 (_frontend_io_out_inst_0),
|
||||
.io_out_inst_1 (_frontend_io_out_inst_1),
|
||||
.io_out_laneValid_0 (_frontend_io_out_laneValid_0),
|
||||
.io_out_laneValid_1 (_frontend_io_out_laneValid_1)
|
||||
);
|
||||
IDStage id (
|
||||
.io_inValid (fetchValid),
|
||||
.io_in_pc (fetchReg_pc),
|
||||
.io_in_inst_0 (fetchReg_inst_0),
|
||||
.io_in_inst_1 (fetchReg_inst_1),
|
||||
.io_in_laneValid_0 (fetchReg_laneValid_0),
|
||||
.io_in_laneValid_1 (fetchReg_laneValid_1),
|
||||
.io_outValid_0 (_id_io_outValid_0),
|
||||
.io_outValid_1 (_id_io_outValid_1),
|
||||
.io_out_0_pc (_id_io_out_0_pc),
|
||||
.io_out_0_inst (_id_io_out_0_inst),
|
||||
.io_out_0_rs1 (_id_io_out_0_rs1),
|
||||
.io_out_0_rs2 (_id_io_out_0_rs2),
|
||||
.io_out_0_rd (_id_io_out_0_rd),
|
||||
.io_out_0_funct3 (_id_io_out_0_funct3),
|
||||
.io_out_0_immI (_id_io_out_0_immI),
|
||||
.io_out_0_immS (_id_io_out_0_immS),
|
||||
.io_out_0_immB (_id_io_out_0_immB),
|
||||
.io_out_0_immU (_id_io_out_0_immU),
|
||||
.io_out_0_immJ (_id_io_out_0_immJ),
|
||||
.io_out_0_opClass (_id_io_out_0_opClass),
|
||||
.io_out_0_aluFn (_id_io_out_0_aluFn),
|
||||
.io_out_0_memWidth (_id_io_out_0_memWidth),
|
||||
.io_out_0_isLoad (_id_io_out_0_isLoad),
|
||||
.io_out_0_isStore (_id_io_out_0_isStore),
|
||||
.io_out_0_isBranch (_id_io_out_0_isBranch),
|
||||
.io_out_0_isJal (_id_io_out_0_isJal),
|
||||
.io_out_0_isJalr (_id_io_out_0_isJalr),
|
||||
.io_out_0_isLui (_id_io_out_0_isLui),
|
||||
.io_out_0_isAuipc (_id_io_out_0_isAuipc),
|
||||
.io_out_0_isOpImm (_id_io_out_0_isOpImm),
|
||||
.io_out_0_isWord (_id_io_out_0_isWord),
|
||||
.io_out_0_isSystem (_id_io_out_0_isSystem),
|
||||
.io_out_0_writesRd (_id_io_out_0_writesRd),
|
||||
.io_out_0_illegal (_id_io_out_0_illegal),
|
||||
.io_out_1_pc (_id_io_out_1_pc),
|
||||
.io_out_1_inst (_id_io_out_1_inst),
|
||||
.io_out_1_rs1 (_id_io_out_1_rs1),
|
||||
.io_out_1_rs2 (_id_io_out_1_rs2),
|
||||
.io_out_1_rd (_id_io_out_1_rd),
|
||||
.io_out_1_funct3 (_id_io_out_1_funct3),
|
||||
.io_out_1_immI (_id_io_out_1_immI),
|
||||
.io_out_1_immS (_id_io_out_1_immS),
|
||||
.io_out_1_immB (_id_io_out_1_immB),
|
||||
.io_out_1_immU (_id_io_out_1_immU),
|
||||
.io_out_1_immJ (_id_io_out_1_immJ),
|
||||
.io_out_1_opClass (_id_io_out_1_opClass),
|
||||
.io_out_1_aluFn (_id_io_out_1_aluFn),
|
||||
.io_out_1_memWidth (_id_io_out_1_memWidth),
|
||||
.io_out_1_isLoad (_id_io_out_1_isLoad),
|
||||
.io_out_1_isStore (_id_io_out_1_isStore),
|
||||
.io_out_1_isBranch (_id_io_out_1_isBranch),
|
||||
.io_out_1_isJal (_id_io_out_1_isJal),
|
||||
.io_out_1_isJalr (_id_io_out_1_isJalr),
|
||||
.io_out_1_isLui (_id_io_out_1_isLui),
|
||||
.io_out_1_isAuipc (_id_io_out_1_isAuipc),
|
||||
.io_out_1_isOpImm (_id_io_out_1_isOpImm),
|
||||
.io_out_1_isWord (_id_io_out_1_isWord),
|
||||
.io_out_1_isSystem (_id_io_out_1_isSystem),
|
||||
.io_out_1_writesRd (_id_io_out_1_writesRd),
|
||||
.io_out_1_illegal (_id_io_out_1_illegal)
|
||||
.io_inValid (fetchValid),
|
||||
.io_in_pc (fetchReg_pc),
|
||||
.io_in_inst_0 (fetchReg_inst_0),
|
||||
.io_in_inst_1 (fetchReg_inst_1),
|
||||
.io_in_laneValid_0 (fetchReg_laneValid_0),
|
||||
.io_in_laneValid_1 (fetchReg_laneValid_1),
|
||||
.io_outValid_0 (_id_io_outValid_0),
|
||||
.io_outValid_1 (_id_io_outValid_1),
|
||||
.io_out_0_pc (_id_io_out_0_pc),
|
||||
.io_out_0_inst (_id_io_out_0_inst),
|
||||
.io_out_0_rs1 (_id_io_out_0_rs1),
|
||||
.io_out_0_rs2 (_id_io_out_0_rs2),
|
||||
.io_out_0_rd (_id_io_out_0_rd),
|
||||
.io_out_0_funct3 (_id_io_out_0_funct3),
|
||||
.io_out_0_immI (_id_io_out_0_immI),
|
||||
.io_out_0_immS (_id_io_out_0_immS),
|
||||
.io_out_0_immB (_id_io_out_0_immB),
|
||||
.io_out_0_immU (_id_io_out_0_immU),
|
||||
.io_out_0_immJ (_id_io_out_0_immJ),
|
||||
.io_out_0_opClass (_id_io_out_0_opClass),
|
||||
.io_out_0_aluFn (_id_io_out_0_aluFn),
|
||||
.io_out_0_memWidth (_id_io_out_0_memWidth),
|
||||
.io_out_0_memSigned (_id_io_out_0_memSigned),
|
||||
.io_out_0_isLoad (_id_io_out_0_isLoad),
|
||||
.io_out_0_isStore (_id_io_out_0_isStore),
|
||||
.io_out_0_isBranch (_id_io_out_0_isBranch),
|
||||
.io_out_0_isJal (_id_io_out_0_isJal),
|
||||
.io_out_0_isJalr (_id_io_out_0_isJalr),
|
||||
.io_out_0_isLui (_id_io_out_0_isLui),
|
||||
.io_out_0_isAuipc (_id_io_out_0_isAuipc),
|
||||
.io_out_0_isOpImm (_id_io_out_0_isOpImm),
|
||||
.io_out_0_isWord (_id_io_out_0_isWord),
|
||||
.io_out_0_isSystem (_id_io_out_0_isSystem),
|
||||
.io_out_0_isFenceI (_id_io_out_0_isFenceI),
|
||||
.io_out_0_isAmo (_id_io_out_0_isAmo),
|
||||
.io_out_0_amoOp (_id_io_out_0_amoOp),
|
||||
.io_out_0_writesRd (_id_io_out_0_writesRd),
|
||||
.io_out_0_illegal (_id_io_out_0_illegal),
|
||||
.io_out_1_pc (_id_io_out_1_pc),
|
||||
.io_out_1_inst (_id_io_out_1_inst),
|
||||
.io_out_1_rs1 (_id_io_out_1_rs1),
|
||||
.io_out_1_rs2 (_id_io_out_1_rs2),
|
||||
.io_out_1_rd (_id_io_out_1_rd),
|
||||
.io_out_1_funct3 (_id_io_out_1_funct3),
|
||||
.io_out_1_immI (_id_io_out_1_immI),
|
||||
.io_out_1_immS (_id_io_out_1_immS),
|
||||
.io_out_1_immB (_id_io_out_1_immB),
|
||||
.io_out_1_immU (_id_io_out_1_immU),
|
||||
.io_out_1_immJ (_id_io_out_1_immJ),
|
||||
.io_out_1_opClass (_id_io_out_1_opClass),
|
||||
.io_out_1_aluFn (_id_io_out_1_aluFn),
|
||||
.io_out_1_memWidth (_id_io_out_1_memWidth),
|
||||
.io_out_1_memSigned (_id_io_out_1_memSigned),
|
||||
.io_out_1_isLoad (_id_io_out_1_isLoad),
|
||||
.io_out_1_isStore (_id_io_out_1_isStore),
|
||||
.io_out_1_isBranch (_id_io_out_1_isBranch),
|
||||
.io_out_1_isJal (_id_io_out_1_isJal),
|
||||
.io_out_1_isJalr (_id_io_out_1_isJalr),
|
||||
.io_out_1_isLui (_id_io_out_1_isLui),
|
||||
.io_out_1_isAuipc (_id_io_out_1_isAuipc),
|
||||
.io_out_1_isOpImm (_id_io_out_1_isOpImm),
|
||||
.io_out_1_isWord (_id_io_out_1_isWord),
|
||||
.io_out_1_isSystem (_id_io_out_1_isSystem),
|
||||
.io_out_1_isFenceI (_id_io_out_1_isFenceI),
|
||||
.io_out_1_isAmo (_id_io_out_1_isAmo),
|
||||
.io_out_1_amoOp (_id_io_out_1_amoOp),
|
||||
.io_out_1_writesRd (_id_io_out_1_writesRd),
|
||||
.io_out_1_illegal (_id_io_out_1_illegal)
|
||||
);
|
||||
OoOBackend backend (
|
||||
.clock (clock),
|
||||
.reset (reset),
|
||||
.io_decodeValid_0 (_id_io_outValid_0),
|
||||
.io_decodeValid_1 (_id_io_outValid_1),
|
||||
.io_decode_0_pc (_id_io_out_0_pc),
|
||||
.io_decode_0_inst (_id_io_out_0_inst),
|
||||
.io_decode_0_rs1 (_id_io_out_0_rs1),
|
||||
.io_decode_0_rs2 (_id_io_out_0_rs2),
|
||||
.io_decode_0_rd (_id_io_out_0_rd),
|
||||
.io_decode_0_funct3 (_id_io_out_0_funct3),
|
||||
.io_decode_0_immI (_id_io_out_0_immI),
|
||||
.io_decode_0_immS (_id_io_out_0_immS),
|
||||
.io_decode_0_immB (_id_io_out_0_immB),
|
||||
.io_decode_0_immU (_id_io_out_0_immU),
|
||||
.io_decode_0_immJ (_id_io_out_0_immJ),
|
||||
.io_decode_0_opClass (_id_io_out_0_opClass),
|
||||
.io_decode_0_aluFn (_id_io_out_0_aluFn),
|
||||
.io_decode_0_memWidth (_id_io_out_0_memWidth),
|
||||
.io_decode_0_isLoad (_id_io_out_0_isLoad),
|
||||
.io_decode_0_isStore (_id_io_out_0_isStore),
|
||||
.io_decode_0_isBranch (_id_io_out_0_isBranch),
|
||||
.io_decode_0_isJal (_id_io_out_0_isJal),
|
||||
.io_decode_0_isJalr (_id_io_out_0_isJalr),
|
||||
.io_decode_0_isLui (_id_io_out_0_isLui),
|
||||
.io_decode_0_isAuipc (_id_io_out_0_isAuipc),
|
||||
.io_decode_0_isOpImm (_id_io_out_0_isOpImm),
|
||||
.io_decode_0_isWord (_id_io_out_0_isWord),
|
||||
.io_decode_0_isSystem (_id_io_out_0_isSystem),
|
||||
.io_decode_0_writesRd (_id_io_out_0_writesRd),
|
||||
.io_decode_0_illegal (_id_io_out_0_illegal),
|
||||
.io_decode_1_pc (_id_io_out_1_pc),
|
||||
.io_decode_1_inst (_id_io_out_1_inst),
|
||||
.io_decode_1_rs1 (_id_io_out_1_rs1),
|
||||
.io_decode_1_rs2 (_id_io_out_1_rs2),
|
||||
.io_decode_1_rd (_id_io_out_1_rd),
|
||||
.io_decode_1_funct3 (_id_io_out_1_funct3),
|
||||
.io_decode_1_immI (_id_io_out_1_immI),
|
||||
.io_decode_1_immS (_id_io_out_1_immS),
|
||||
.io_decode_1_immB (_id_io_out_1_immB),
|
||||
.io_decode_1_immU (_id_io_out_1_immU),
|
||||
.io_decode_1_immJ (_id_io_out_1_immJ),
|
||||
.io_decode_1_opClass (_id_io_out_1_opClass),
|
||||
.io_decode_1_aluFn (_id_io_out_1_aluFn),
|
||||
.io_decode_1_memWidth (_id_io_out_1_memWidth),
|
||||
.io_decode_1_isLoad (_id_io_out_1_isLoad),
|
||||
.io_decode_1_isStore (_id_io_out_1_isStore),
|
||||
.io_decode_1_isBranch (_id_io_out_1_isBranch),
|
||||
.io_decode_1_isJal (_id_io_out_1_isJal),
|
||||
.io_decode_1_isJalr (_id_io_out_1_isJalr),
|
||||
.io_decode_1_isLui (_id_io_out_1_isLui),
|
||||
.io_decode_1_isAuipc (_id_io_out_1_isAuipc),
|
||||
.io_decode_1_isOpImm (_id_io_out_1_isOpImm),
|
||||
.io_decode_1_isWord (_id_io_out_1_isWord),
|
||||
.io_decode_1_isSystem (_id_io_out_1_isSystem),
|
||||
.io_decode_1_writesRd (_id_io_out_1_writesRd),
|
||||
.io_decode_1_illegal (_id_io_out_1_illegal),
|
||||
.io_decodeReady (_backend_io_decodeReady),
|
||||
.io_flush (_backend_io_flush),
|
||||
.io_redirectPc (_backend_io_redirectPc),
|
||||
.io_dmemReqValid (io_dmem_req_valid),
|
||||
.io_dmemReq_addr (io_dmem_req_bits_addr),
|
||||
.io_dmemReq_data (io_dmem_req_bits_data),
|
||||
.io_dmemReq_isStore (io_dmem_req_bits_isStore),
|
||||
.io_dmemReq_size (io_dmem_req_bits_size),
|
||||
.io_dmemRespValid (io_dmem_resp_valid),
|
||||
.io_dmemRespData (io_dmem_resp_bits)
|
||||
.clock (clock),
|
||||
.reset (reset),
|
||||
.io_decodeValid_0 (_id_io_outValid_0),
|
||||
.io_decodeValid_1 (_id_io_outValid_1),
|
||||
.io_decode_0_pc (_id_io_out_0_pc),
|
||||
.io_decode_0_inst (_id_io_out_0_inst),
|
||||
.io_decode_0_rs1 (_id_io_out_0_rs1),
|
||||
.io_decode_0_rs2 (_id_io_out_0_rs2),
|
||||
.io_decode_0_rd (_id_io_out_0_rd),
|
||||
.io_decode_0_funct3 (_id_io_out_0_funct3),
|
||||
.io_decode_0_immI (_id_io_out_0_immI),
|
||||
.io_decode_0_immS (_id_io_out_0_immS),
|
||||
.io_decode_0_immB (_id_io_out_0_immB),
|
||||
.io_decode_0_immU (_id_io_out_0_immU),
|
||||
.io_decode_0_immJ (_id_io_out_0_immJ),
|
||||
.io_decode_0_opClass (_id_io_out_0_opClass),
|
||||
.io_decode_0_aluFn (_id_io_out_0_aluFn),
|
||||
.io_decode_0_memWidth (_id_io_out_0_memWidth),
|
||||
.io_decode_0_memSigned (_id_io_out_0_memSigned),
|
||||
.io_decode_0_isLoad (_id_io_out_0_isLoad),
|
||||
.io_decode_0_isStore (_id_io_out_0_isStore),
|
||||
.io_decode_0_isBranch (_id_io_out_0_isBranch),
|
||||
.io_decode_0_isJal (_id_io_out_0_isJal),
|
||||
.io_decode_0_isJalr (_id_io_out_0_isJalr),
|
||||
.io_decode_0_isLui (_id_io_out_0_isLui),
|
||||
.io_decode_0_isAuipc (_id_io_out_0_isAuipc),
|
||||
.io_decode_0_isOpImm (_id_io_out_0_isOpImm),
|
||||
.io_decode_0_isWord (_id_io_out_0_isWord),
|
||||
.io_decode_0_isSystem (_id_io_out_0_isSystem),
|
||||
.io_decode_0_isFenceI (_id_io_out_0_isFenceI),
|
||||
.io_decode_0_isAmo (_id_io_out_0_isAmo),
|
||||
.io_decode_0_amoOp (_id_io_out_0_amoOp),
|
||||
.io_decode_0_writesRd (_id_io_out_0_writesRd),
|
||||
.io_decode_0_illegal (_id_io_out_0_illegal),
|
||||
.io_decode_1_pc (_id_io_out_1_pc),
|
||||
.io_decode_1_inst (_id_io_out_1_inst),
|
||||
.io_decode_1_rs1 (_id_io_out_1_rs1),
|
||||
.io_decode_1_rs2 (_id_io_out_1_rs2),
|
||||
.io_decode_1_rd (_id_io_out_1_rd),
|
||||
.io_decode_1_funct3 (_id_io_out_1_funct3),
|
||||
.io_decode_1_immI (_id_io_out_1_immI),
|
||||
.io_decode_1_immS (_id_io_out_1_immS),
|
||||
.io_decode_1_immB (_id_io_out_1_immB),
|
||||
.io_decode_1_immU (_id_io_out_1_immU),
|
||||
.io_decode_1_immJ (_id_io_out_1_immJ),
|
||||
.io_decode_1_opClass (_id_io_out_1_opClass),
|
||||
.io_decode_1_aluFn (_id_io_out_1_aluFn),
|
||||
.io_decode_1_memWidth (_id_io_out_1_memWidth),
|
||||
.io_decode_1_memSigned (_id_io_out_1_memSigned),
|
||||
.io_decode_1_isLoad (_id_io_out_1_isLoad),
|
||||
.io_decode_1_isStore (_id_io_out_1_isStore),
|
||||
.io_decode_1_isBranch (_id_io_out_1_isBranch),
|
||||
.io_decode_1_isJal (_id_io_out_1_isJal),
|
||||
.io_decode_1_isJalr (_id_io_out_1_isJalr),
|
||||
.io_decode_1_isLui (_id_io_out_1_isLui),
|
||||
.io_decode_1_isAuipc (_id_io_out_1_isAuipc),
|
||||
.io_decode_1_isOpImm (_id_io_out_1_isOpImm),
|
||||
.io_decode_1_isWord (_id_io_out_1_isWord),
|
||||
.io_decode_1_isSystem (_id_io_out_1_isSystem),
|
||||
.io_decode_1_isFenceI (_id_io_out_1_isFenceI),
|
||||
.io_decode_1_isAmo (_id_io_out_1_isAmo),
|
||||
.io_decode_1_amoOp (_id_io_out_1_amoOp),
|
||||
.io_decode_1_writesRd (_id_io_out_1_writesRd),
|
||||
.io_decode_1_illegal (_id_io_out_1_illegal),
|
||||
.io_decodeReady (_backend_io_decodeReady),
|
||||
.io_flush (_backend_io_flush),
|
||||
.io_redirectPc (_backend_io_redirectPc),
|
||||
.io_invalidateICache (_backend_io_invalidateICache),
|
||||
.io_dmemReqValid (io_dmem_req_valid),
|
||||
.io_dmemReq_addr (io_dmem_req_bits_addr),
|
||||
.io_dmemReq_data (io_dmem_req_bits_data),
|
||||
.io_dmemReq_isStore (io_dmem_req_bits_isStore),
|
||||
.io_dmemReq_size (io_dmem_req_bits_size),
|
||||
.io_dmemRespValid (io_dmem_resp_valid),
|
||||
.io_dmemRespData (io_dmem_resp_bits)
|
||||
);
|
||||
endmodule
|
||||
|
||||
|
||||
Reference in New Issue
Block a user