digiwleeaLearn
Open the lab →

OR

NOR, then inverted

3 min read

An OR gate outputs 1 when at least one of its inputs is 1. In CMOS it is built as a NOR gate followed by an inverter, mirroring how AND is built from NAND.

Builds onNORNOT
Build it in the lab →
If you built AND from NAND, you already know this lesson; just swap the parts. OR is NOR with a NOT on its output, exactly as AND was NAND with a NOT. Same recipe, dual gate.
OR produces 1 whenever at least one input is 1, and 0 only when both are 0. Like AND it is non-inverting, so in CMOS you build it from its cheaper inverting cousin: NOR, then NOT.
ABF
000
011
101
111
Only the top row produces 0. Any high input is enough to drive the output high.
F = A B

NOR then NOT: the same recipe as AND

NOR gives you NOT (A OR B). Feeding that into NOT cancels the outer inversion: NOT (NOT (A OR B)) is just A OR B. Two stages, two saved parts.
  1. Place your saved NOR. Connect A and B to its inputs; its output is NOT (A OR B), high only when both inputs are 0.
  2. Place your saved NOT. Feed the NOR output into it.
  3. The result simplifies to A OR B.
  4. Label the final output F. OR built from two inverting stages.
There is a second route that avoids NOR entirely: F = (NOT A) NAND (NOT B). De Morgan's law shows it is the same function (NOT(A' · B') = A + B). The NOR-then-NOT path just uses fewer parts here, because NOR is already one unit in your library.
A NOR feeding a NOT, the dual of AND. Open it in the lab to see the pattern repeat.
Try it
Build OR as NOR -> NOT. For inputs A = 0, B = 0, trace the value through the NOR and then the NOT. Why is this the only row where OR is 0?
Notice the symmetry: AND = NAND + NOT, OR = NOR + NOT. Inverting gates are cheap in CMOS, so you build them first and cancel the inversion. That habit scales straight up to the larger blocks ahead.
With OR saved you now hold all four basic gates as reusable parts (AND, OR, NAND, NOR) plus NOT. The next group spends them on arithmetic, where OR will merge the two carry signals inside a full adder, the heart of your CPU's adder.

Frequently asked

What is an OR gate?

An OR gate outputs 1 when at least one of its inputs is 1, and 0 only when every input is 0.

How is an OR gate built in CMOS?

As a NOR gate followed by a NOT, mirroring how AND is built from NAND: NOT (A NOR B) = A OR B. Inverting gates are cheaper in CMOS, so you build NOR first and cancel the inversion.

What is the difference between OR and XOR?

They agree everywhere except when both inputs are 1: 1 OR 1 = 1, but 1 XOR 1 = 0. OR is "one or the other, or both"; XOR is "one or the other, but not both."

You've got the theory. Now build it from scratch and watch it work.

Build it in the lab →
Found this useful? Share itShare on X