Build a 1-bit full adder using two half adders and an OR gate.
Requirements
- Module:
full_adder_struct - Inputs:
a, b, cin - Outputs:
sum, cout - First half adder computes
a ⊕ b. - Second half adder computes
(a⊕b) ⊕ cin. - OR gate merges the carries.

Behavior
- Inputs:
a, b, cin - Outputs:
sum, cout - Truth table:
| a | b | cin | sum | cout |
|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |