# How to convert a boolean expression to a NOR gate only format using Demorgan's law

My boolean expression is D+ CD' (A+B) . Only 2 input NOR gates are available.

• Nice. Do you expect us to wave a magic wand and produce the answer for you? That would negate the effect of homework! But we might be willing to help to towards the answer. So: what did you try so far, where exactly did you get stuck? Commented Feb 5, 2014 at 18:44
• I have been solving this from last 2 hours, but haven't been able to. I know tha according to Demorgan's law (AB)'=A'B' and (A+B)'=A'B', i tried solving, but i haven't ended up to a NOR gate expression Commented Feb 5, 2014 at 18:47
• Given an arbitrary truth table, do you know how to generate the NOR-gate circuit? Commented Feb 5, 2014 at 19:26
• NOR: 00= 1, 01= 0, 10= 0, 11= 0 Commented Feb 5, 2014 at 19:40
• 1. Can you draw the original expression as a gate circuit? 2. Do you know how to replace a (AND, NAND, OR, NOT) gate with an equivalent using only NOR gates? Commented Feb 5, 2014 at 19:53

## 1 Answer

A ↓ B, by definition, is (A + B)'. That definition, plus DeMorgan's law and the properties of booleans, let us easily derive the fundamental operations.

     A     =   A + A                (idempotence of +)
A'    =  (A + A)'              (negate both sides)
=   A ↓ A                (definition of ↓)

(A + B)'  =  A ↓ B                 (definition of ↓)
A + B    = (A ↓ B)'               (negate both sides)
= (A ↓ B) ↓ (A ↓ B)      (definition of ~)

(A * B)'  =  A' + B'               (DeMorgan's law)
A * B    = (A' + B')'             (negate both sides)
=  A' ↓ B'               (definition of ↓)
= (A ↓ A) ↓ (B ↓ B)      (definition of ~)


Given these definitions, it's pretty straightforward (if tedious) to convert your expression to one that only uses ↓. (That's your job. I don't do tedious unless someone's paying me.) I'd recommend being liberal with parentheses here. For example, you might rewrite your expression as

D + ((C * D') * (A + B))


and start from there. Once you have that expression, i assume you have some clue about how to build a collection of gates representing it.

Once you've done that, you can eliminate redundant operations. For any given A and B, A ↓ B will have the same value each time you calculate it...so you only need to do it once. Anywhere you have two gates with identical inputs, you can condense that to one gate with the output going wherever the two gates' outputs would go.