Memory Register File Imm Extend ALU A1 A2 A3 WD RD1 RD2 A WD RD Instr Instr[19:15] Instr[31:7] ImmExt PC_Next PC ALUResult ALUOut PCWrite IRWrite ImmSrc ALUCtl WE WE rs1 imm +