From e7389a3065904fbcee52ba52c7b049c3744e2647 Mon Sep 17 00:00:00 2001 From: Graham Edgecombe Date: Fri, 1 Dec 2017 21:51:41 +0000 Subject: [PATCH] Fix shamt decoding --- rv32_decode.sv | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rv32_decode.sv b/rv32_decode.sv index 9c56ea4..02391a9 100644 --- a/rv32_decode.sv +++ b/rv32_decode.sv @@ -32,6 +32,8 @@ module rv32_decode ( logic [31:0] imm_u = {sign, instr_in[30:20], instr_in[19:12], 12'b0}; logic [31:0] imm_j = {{12{sign}}, instr_in[19:12], instr_in[20], instr_in[30:25], instr_in[24:1], 1'b0}; + logic [31:0] shamt = {27'b0, rs2}; + rv32_regs regs ( .clk(clk), .rs1_in(rs1), @@ -170,17 +172,17 @@ module rv32_decode ( {RV32_OPCODE_OP_IMM, RV32_FUNCT3_OP_SLL, RV32_FUNCT7_ZERO}: begin /* SLLI */ valid <= 1; - imm_out <= imm_i; + imm_out <= shamt; end {RV32_OPCODE_OP_IMM, RV32_FUNCT3_OP_SRL_SRA, RV32_FUNCT7_ZERO}: begin /* SRLI */ valid <= 1; - imm_out <= imm_i; + imm_out <= shamt; end {RV32_OPCODE_OP_IMM, RV32_FUNCT3_OP_SRL_SRA, RV32_FUNCT7_OP_SRA}: begin /* SRAI */ valid <= 1; - imm_out <= imm_i; + imm_out <= shamt; end {RV32_OPCODE_OP, RV32_FUNCT3_OP_ADD_SUB, RV32_FUNCT7_ZERO}: begin /* ADD */