#842 XOR Gate with NAND Logic
Demonstrating how an XOR gate may constructed solely from NAND gates.

Notes
The NAND boolean function has the property of functional completeness, meaning that any Boolean expression can be expressed with an equivalent expression using only NAND operations.
The NAND Truth Table:
| A | B | Q |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
The XOR Truth Table:
| A | B | Q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
An XOR gate is made by connecting four NAND gates as shown below. This construction entails a propagation delay three times that of a single NAND gate.

Circuit Design
Designed with Fritzing: see XOR.fzz.
To demonstrate an XOR gate made from NAND gates, I have the circuit constructed on a breadboard using the CD4011 Quad 2-Input NAND Buffered B Series Gate.
An Arduino is used to automate a demo cycle of inputs.
Inputs and outputs are indicated with LEDs, and captured with an oscilloscope.



The Sketch
See XOR.ino.
The sketch simply automates the A, B inputs, cycling through all 4 possibilities.
Test Results
Here’s a scope trace capturing all 4 states, and demonstrating the the output is correct as expected. Traces are offset vertically for clarity.
- CH1 (yellow): input A
- CH2 (blue): input B
- CH3 (red): output Q
