Branch PCUpdate PCWrite RegWrite MemWrite IRWrite ResultSrc[1:0] ALUSrcB[1:0] ALUSrcA[1:0] AdrSrc op[6:0] Zero ALUOp[1:0] ALUCtl[2:0] op[6:0] ImmSrc[1:0] op[6:0] funct3[2:0] funct7[5] Main FSM ALU Decoder Instr Decoder