module Adder (IN, R1P1, R2P1, R2M1, R3P1A, R3M2, R3P1B, R4P1, R4M3, R4P3, R4M1, OUT);

input   signed [5:0] IN;

input   R1P1;
input   R2P1;
input   R2M1;
input   R3P1A;
input   R3M2;
input   R3P1B;
input   R4P1;
input   R4M3;
input   R4P3;
input   R4M1;   

output  signed [5:0] OUT;
reg     signed [5:0] OUT;
reg     signed [4:0] DEL;

always @ (IN or R1P1 or R2P1 or R2M1 or R3P1A or R3M2 or R3P1B or R4P1 or R4M3 or R4P3 or R4M1)

begin
    DEL = {4'd0,R1P1}
        + {4'd0,R2P1}
        - {4'd0,R2M1}
        + {4'd0,R3P1A}
        - {3'd0,R3M2,1'b0}
        + {4'd0,R3P1B}
        + {4'd0,R4P1}
        - {3'd0,R4M3,R4M3}
        + {3'd0,R4P3,R4P3}
        - {4'd0,R4M1};

    OUT = IN + DEL;
end

endmodule