/*Write your code here*/
module alu4(
input [3:0] a,b,
input [2:0] op,
output reg [3:0] y,
output reg cf
);
parameter [2:0]ADD = 0,SUB = 1,AND = 2,OR = 3,XOR = 4;
// reg carry;
// reg [3:0] temp;
always @(*) begin
y = 4'b0000;
cf = 1'b0;
// carry = 1'b0;
case(op)
ADD : {cf,y} = a + b;
SUB : begin
{cf,y} = a + ~b + 1;
// cf = ~carry;
end
AND : begin
y = a & b;
cf = 0;
end
OR : begin
y = a | b;
cf = 0;
end
XOR : begin
y = a ^ b;
cf = 0;
end
default : begin
y = 0;
cf = 0;
end
endcase
end
// assign cf = op == SUB ? ~carry : carry;
// assign y = temp;
endmodule