diff --git a/src/main/scala/ALU.scala b/src/main/scala/ALU.scala index c8c29c4..d802b98 100644 --- a/src/main/scala/ALU.scala +++ b/src/main/scala/ALU.scala @@ -34,8 +34,10 @@ class ALU extends Module { ALUOps.COPY_A -> (data1U), ALUOps.COPY_B -> (data2U), ALUOps.ADDR -> ((data1S + data2S) & 0xFFFFFFFE.S).asUInt, - ALUOps.LUI -> (data2U << 12.U).asUInt, - ALUOps.AUIPC -> (data1U + (data2U << 12.U)), + // These two are a remenant from an older version. I could use COPY_B and ADD instead. + // But they don't do any harm, and it's more work to removing them + ALUOps.LUI -> data2U, + ALUOps.AUIPC -> (data1U + data2U), ) io.result := MuxLookup( diff --git a/src/main/scala/Decoder.scala b/src/main/scala/Decoder.scala index 2e93759..4d62546 100644 --- a/src/main/scala/Decoder.scala +++ b/src/main/scala/Decoder.scala @@ -57,8 +57,8 @@ class Decoder() extends Module { BGE -> List(N, N, N, N, Y, Y, N, branchType.gte, BTYPE, ALUOps.ADD), BGEU -> List(N, N, N, N, Y, Y, N, branchType.gteu, BTYPE, ALUOps.ADD), - LUI -> List(N, Y, N, N, Y, N, N, branchType.DC, ImmFormat.DC, ALUOps.LUI), - AUIPC -> List(N, Y, N, N, Y, N, N, branchType.DC, ImmFormat.DC, ALUOps.AUIPC), + LUI -> List(N, Y, N, N, Y, N, N, branchType.DC, UTYPE, ALUOps.LUI), + AUIPC -> List(N, Y, N, N, Y, N, N, branchType.DC, UTYPE, ALUOps.AUIPC), ADD -> List(N, Y, N, N, N, N, N, branchType.DC, ImmFormat.DC, ALUOps.ADD), ADDI -> List(N, Y, N, N, Y, N, N, branchType.DC, ITYPE, ALUOps.ADD),