module LA32R_CPU(
    input clk,
    input [31:0] Instr
);
    wire RegWr, MemToReg, MemWrEn, ALUBSrc, srcReg;
    wire [1:0] ExtOp;
    wire [2:0] AluCtrl;
    wire Zero;

    Controller u_Controller(.Opcode_in(Instr[31:15]), .RegWr(RegWr), .MemToReg(MemToReg), .MemWrEn(MemWrEn),
        .ALUBSrc(ALUBSrc), .srcReg(srcReg), .ExtOp(ExtOp), .AluCtrl(AluCtrl));
    Datapath u_Datapath(.clk(clk), .Instr(Instr), .RegWr(RegWr), .MemToReg(MemToReg), .MemWrEn(MemWrEn),
        .ALUBSrc(ALUBSrc), .srcReg(srcReg), .ExtOp(ExtOp), .AluCtrl(AluCtrl), .Zero(Zero));
endmodule