Perform basic arithmetic/logic on two 4-bit unsigned inputs.
Requirements
alu4a[3:0], b[3:0], op[2:0]y[3:0], cfBehavior
a[3:0], b[3:0], op[2:0]y[3:0] (result), cf (flag: carry for ADD, borrow for SUB, 0 for logic ops)3'b000 → ADD : {carry, y} = a + b, cf = carry3'b001 → SUB : y = a − b via two’s complement (a + ~b + 1), cf = borrow = ~carry_out3'b010 → AND : y = a & b, cf = 03'b011 → OR : y = a | b, cf = 03'b100 → XOR : y = a ^ b, cf = 0y = 4'b0000, cf = 0 (reserved)