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?

  • \$\begingroup\$ I can't see what you did wrong if you don't post the code lol. \$\endgroup\$
    – user103380
    Mar 6 '17 at 4:04
  • \$\begingroup\$ Is a carry of 1 for +3 and -2 incorrect though? I created a 1 bit FA using structural modeling and then used a generate loop to generate a 4bit full adder. \$\endgroup\$
    – John
    Mar 6 '17 at 4:05
  • 1
    \$\begingroup\$ Think about what a carry indicates. For instance, in an unsigned 4-bit adder, if I told you that I added 2 + 2 and got 4 + 16 = 20, would that be correct? \$\endgroup\$
    – uint128_t
    Mar 6 '17 at 4:31

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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.