S0: Fetch Instr
Reset
S1: Decode
S2: MemAdr
ALUSrcA=10
ALUSrcB=01
ALUOp=00
S3: MemRead
ResultSrc=00
AdrSrc=1
S4: MemWB
ResultSrc=01
RegWrite
S6: Exe R-Type
S9: Exe I-Type
S10: jal
S8: beq
S7: ALUWB
AdrSrc=0
IRWrite
ALUSrcA=00
ALUSrcB=10
ALUOp=00
ResultSrc=10
PCUpdate
ALUSrcA=10
ALUSrcB=00
ALUOp=10
ALUSrcA=10
ALUSrcB=01
ALUOp=10
ALUSrcA=10
ALUSrcB=00
ALUOp=01
ResultSrc=00
branch
ResultSrc=00
RegWrite
ALUSrcA=01
ALUSrcB=10
ALUOp=00
ResultSrc=00
PCUpdate
S5: MemWrite
ResultSrc=00
AdrSrc=1
MemWrite
op=0000011
or
op=0100011
op=1100011
op=0110011 (R)
op=0000011 (lw)
op=0100011 (sw)
op=0010011 (I)
op=1101111 (jal)
ALUSrcA=01
ALUSrcB=01
ALUOp=00