Add16 implements 16-bit binary addition. This works similarly to ordinary decimal addition:

1 1
4567
+ 1825
------
6392

In binary, the carry into the adder for bit 0 is always 0. In fact, you can save a little hardware by using a half adder for bit 0.

The carry into all other bits

*n* is the carry output from the bit

*n*-1 adder.

Since you are generating a 16-bit result, the carry output from the bit 15 adder is discarded.

--Mark