Memory Register File Imm Extend ALU A1 A2 A3 WD RD1 RD2 A WD RD 0 1 00 01 10 00 01 10 00 01 10 32'd4 Instr Instr[19:15] Instr[24:20] Instr[11:7] Instr[31:7] ImmExt SrcA SrcB PC_Next PC Old_PC ALUResult ALUOut Data ReadData Result WriteData PCWrite AdrSrc MemWrite IRWrite RegWrite ImmSrc ALUSrcA ALUSrcB ALUCtl ResultSrc