From a16f63803f1de6638474108e0073c1ed1044737f Mon Sep 17 00:00:00 2001 From: Qin Jin <137202313@qq.com> Date: Sat, 4 Feb 2023 20:15:23 +0800 Subject: [PATCH] alli --- xgriscv_alu.v | 2 ++ xgriscv_controller.v | 6 +++++- xgriscv_datapath.v | 7 ++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/xgriscv_alu.v b/xgriscv_alu.v index 2d73c34..c96f76d 100644 --- a/xgriscv_alu.v +++ b/xgriscv_alu.v @@ -34,6 +34,8 @@ module alu( `ALU_CTRL_XOR: aluout <= a ^ b; `ALU_CTRL_AND: aluout <= a & b; + + `ALU_CTRL_SLL: aluout <= a << shamt; //`ALU_CTRL_ZERO default: aluout <= `XLEN'b0; endcase diff --git a/xgriscv_controller.v b/xgriscv_controller.v index 00bca81..2eab5fb 100644 --- a/xgriscv_controller.v +++ b/xgriscv_controller.v @@ -111,7 +111,11 @@ module controller( `FUNCT3_ADDI: aluctrl <= `ALU_CTRL_ADD; `FUNCT3_XORI: aluctrl <= `ALU_CTRL_XOR; `FUNCT3_ANDI: aluctrl <= `ALU_CTRL_AND; - default: aluctrl <= `ALU_CTRL_ZERO; + `FUNCT3_SL: case(funct7) + `FUNCT7_SLLI: aluctrl <= `ALU_CTRL_SLL; + default: aluctrl <= `ALU_CTRL_ZERO; + endcase + default: aluctrl <= `ALU_CTRL_ZERO; endcase default: aluctrl <= `ALU_CTRL_ZERO; endcase diff --git a/xgriscv_datapath.v b/xgriscv_datapath.v index c56deac..a2dfea2 100644 --- a/xgriscv_datapath.v +++ b/xgriscv_datapath.v @@ -59,9 +59,10 @@ module datapath( //处理mux - mux2 #(32) mx0(rdata2, immout, alusrcb, b); - mux2 #(32) mx1(aluout, readdata, memtoreg, wdata); - mux3 #(32) mx2(rdata1, 0, pc, alusrca, a); + mux2 #(32) mx0(rdata2, immout, alusrcb, b); //alu input b + mux2 #(32) mx1(aluout, readdata, memtoreg, wdata); // wdata input + mux3 #(32) mx2(rdata1, 0, pc, alusrca, a); //alu input a + mux2 #(5) mx2(rdata2, rs2, itype, shamt); //alu input shamt imm im(iimm, simm, bimm, uimm, jimm, immctrl, immout); -- GitLab