module ALU(A,B,OP,carry,Y); input [7:0] A; input [7:0] B; input [2:0] OP; output reg carry; output reg [7:0] Y; always @(*) case(OP) 3'h0: {carry,Y} = {1'h0,B}; 3'h1: {carry,Y} = {1'h0,A&B}; 3'h2: {carry,Y} = {1'h0,A|B}; 3'h3: {carry,Y} = {1'h0,A^B}; 3'h4: {carry,Y} = A+B; 3'h5: {carry,Y} = A-B; default: {carry,Y} = 9'h0; endcase; endmodule