diff --git a/rtl/serv_decode.v b/rtl/serv_decode.v index 7b9a9fd..de6deed 100644 --- a/rtl/serv_decode.v +++ b/rtl/serv_decode.v @@ -73,13 +73,12 @@ module serv_decode reg imm25; reg imm30; - wire op_or_opimm = (!opcode[4] & opcode[2] & !opcode[0]); wire co_mdu_op = MDU & (opcode == 5'b01100) & imm25; wire co_two_stage_op = ~opcode[2] | (funct3[0] & ~funct3[1] & ~opcode[0] & ~opcode[4]) | (funct3[1] & ~funct3[2] & ~opcode[0] & ~opcode[4]) | co_mdu_op; - wire co_shift_op = op_or_opimm & (funct3[1:0] == 2'b01) & !co_mdu_op; + wire co_shift_op = (opcode[2] & ~funct3[1]) & !co_mdu_op; wire co_slt_or_branch = (opcode[4] | (funct3[1] & opcode[2]) | (imm30 & opcode[2] & opcode[3] & ~funct3[2])) & !co_mdu_op; wire co_branch_op = opcode[4]; wire co_dbus_en = ~opcode[2] & ~opcode[4];