aboutsummaryrefslogtreecommitdiff
path: root/src/alu_op_decode.v
diff options
context:
space:
mode:
authorFlavian Kaufmann <flavian@flaviankaufmann.ch>2024-05-21 13:50:28 +0200
committerFlavian Kaufmann <flavian@flaviankaufmann.ch>2024-05-21 13:50:28 +0200
commitcb0be9e2039569ee7d18657e8f675d1f8369b407 (patch)
tree91fa71b3960d1ad5217759371143efbdd833d475 /src/alu_op_decode.v
parent98d0dd96611dc2c0e444eaf9410f8adf2924c6b5 (diff)
downloadriscv_cpu-cb0be9e2039569ee7d18657e8f675d1f8369b407.tar.gz
riscv_cpu-cb0be9e2039569ee7d18657e8f675d1f8369b407.zip
restructured project
Diffstat (limited to 'src/alu_op_decode.v')
-rw-r--r--src/alu_op_decode.v43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/alu_op_decode.v b/src/alu_op_decode.v
deleted file mode 100644
index 4523255..0000000
--- a/src/alu_op_decode.v
+++ /dev/null
@@ -1,43 +0,0 @@
-module alu_op_decode (
- input [6:0] opcode,
- input [2:0] funct3,
- input [6:0] funct7,
-
- input alu_ctrl,
-
- output reg [3:0] alu_op
-);
-
-`include "include/consts.vh"
-
-always @ (*) begin
- if (alu_ctrl == ALU_CTRL_ADD) begin
- alu_op = ALU_OP_ADD;
- end else if (opcode == OPCODE_REG || opcode == OPCODE_IMM) begin
- case (funct3)
- FUNCT3_ALU_ADD_SUB: alu_op = (opcode == OPCODE_REG && funct7 == FUNCT7_ALU_SUB) ? ALU_OP_SUB : ALU_OP_ADD;
- FUNCT3_ALU_SLL: alu_op = ALU_OP_SLL;
- FUNCT3_ALU_SLT: alu_op = ALU_OP_SLT;
- FUNCT3_ALU_SLTU: alu_op = ALU_OP_SLTU;
- FUNCT3_ALU_XOR: alu_op = ALU_OP_XOR;
- FUNCT3_ALU_SR: alu_op = funct7 == FUNCT7_ALU_SRL ? ALU_OP_SRL : ALU_OP_SRA;
- FUNCT3_ALU_OR: alu_op = ALU_OP_OR;
- FUNCT3_ALU_AND: alu_op = ALU_OP_AND;
- default: alu_op = ALU_OP_ADD;
- endcase
- end else if (opcode == OPCODE_BRANCH) begin
- case (funct3)
- FUNCT3_BRANCH_BEQ: alu_op = ALU_OP_SUB;
- FUNCT3_BRANCH_BNE: alu_op = ALU_OP_SUB;
- FUNCT3_BRANCH_BLT: alu_op = ALU_OP_SLT;
- FUNCT3_BRANCH_BGE: alu_op = ALU_OP_SLT;
- FUNCT3_BRANCH_BLTU: alu_op = ALU_OP_SLTU;
- FUNCT3_BRANCH_BGEU: alu_op = ALU_OP_SLTU;
- default: alu_op = ALU_OP_ADD;
- endcase
- end else begin
- alu_op = ALU_OP_ADD;
- end
-end
-
-endmodule