Memory Register File Imm Extend ALU A1 A2 A3 WD RD1 RD2 A WD RD 0 1 Instr Instr[19:15] Instr[31:7] ImmExt PC_Next PC ALUResult ALUOut Data ReadData PCWrite AdrSrc IRWrite ImmSrc ALUCtl