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