For a 4-bit signed full adder, the output range in decimal is -8 to +7. I created a 4-bit signed full adder in verilog and simulated it. When I added +5 and +3, I got a sum of -8 and overflow=1. This should be correct right? When I added +3 and -1, I got a sum of +2 and a carry of 1. Is this correct or is my code wrong?
For a signed adder the carry out bit has no meaning. Only the overflow bit has meaning and importance.
For +3 + (-1) you get result 2 and no overflow, which is the correct answer
(+5) + (+3) gave you +8 with overflow, also a correct answer