I am new at digital design and I have a problem. I need to get the number of zeros. There must be 4 inputs and I must use only half-adders. I tried everything I know but I could not solve this. Do you have an idea?
Phase 1, invert all inputs.
- That way we can identify zeros as logic 1. and Logic 1 can be quantified easily with a half adder as oppose to logic 0.
Phase 2, Combine half-adders to make a 4-bit adder.
- Half-Adder can add 2-bits
- Full-Adder can add 3-bits
- Hald-Adders + Full-Adders + Ripple Carry can add n-bits
What Half Adder and Full Adder look like
How to build an inverter with a half-adder:
- keep one of the exclusive-or inputs high. Then the exclusive-or gate acts like an inverter
NOT gate using a single Half-Adder
How to build an or gate with only half-adders, in case you need it to build the full-adder and n-bit adder:
First, build a nand gate using a half adder. Second, build an or gate from nand gates.
- You can do it by attaching the input of the not gate to the and gate.
NAND gate using 2 half-adders
OR gate using 3 NANDs
It is pretty easy. Invert these inputs and then add them all. This way you will add 1 for every zero and 0 for every 1. Don't forget for the carry.
If the half adder is the only allowed component, you can use it to invert the signals, setting the one of the inputs to 1, because the 1+1=0 and 0+1=1. The carry output will be not used in this case.