# Implementing a Boolean function using NOR gates

The task is to implement a Boolean function using NOR gates only. After minimization what I end up with is the following equation:

$$f(a,b,c,d) = {\overline {b} \overline {c}} + {a \overline {c}} + {c \overline {d}}$$

I tried to do something like this:

$$f(a,b,c,d) = \overline{\overline{\overline {b} \overline {c}}} + \overline{\overline{a \overline {c}}} + \overline{\overline{c \overline {d}}}$$ using De Morgan's Laws:

$$f(a,b,c,d) = \overline{b+c} + \overline{\overline{a} +c} + \overline{\overline{c} +d}$$

Textbook solution suggested to deduce the minimized CNF form and transform it a bit:

I wanted to find out is my solution any good, but Logic Friday created two different truth tables for the two expressions:

What interests me is where did I go wrong in my solution? Do we generally must use CNF to get to the function with only NOR operations?

EDIT: The function is given by: $$f(1)={1,2,6,9,10,13,14}$$ and $$f(*)={0,8,12}$$

For minimization I used a K-map.

• the truth tables are incomplete. Are they displaying the positive rows only? Commented Dec 14, 2015 at 19:39
• Also I see some don't-cares in the k-map, which I don't understand how derived from the function you are giving. It looks like you are not telling us everything. Commented Dec 14, 2015 at 19:42
• @EugeneSh. I edited the post. I thought that the original truth table can be deduced from the K-map above. The way I usually do that is by considering all the values that are not * or 0 to be 1. I made a K-map with 1 in those fields and did the minimization.
– 0lt
Commented Dec 14, 2015 at 19:58
• so your function is incorrect. Row 3 can't be 1. It is neither in f(1) nor in f(*). Updat: Oh, wait.. you tables are mixing up the variables order.. can you arrange them in the order matching the function definition? Commented Dec 14, 2015 at 19:59
• I used WolframAlpha this time and it turns out that my solution as well as the textbook solution both create truth tables that match the truth table the function was defined with. Thank you so much for your input and pointing out that variable order was mixed up. How can I award your comment as the best answer?
– 0lt
Commented Dec 14, 2015 at 20:32

Don't care conditions are greedy. Your answer will be different from the textbook.

$$\overline {\overline {X}} = X$$

So they have:

$$(\overline {c} + \overline {d})(c+d)(a+\overline {b}+\overline {d})$$

Double negation:

$$\overline{\overline{(\overline {c} + \overline {d})(c+d)(a+\overline {b}+\overline {d})}}$$

Take DeMorgan's on lower bar. $$\overline{\overline{(\overline {c} + \overline {d})}+\overline{(c+d)}+\overline{(a+\overline {b}+\overline {d})}}$$

All NOR gates.

You have:

$${\overline {b} \overline {c}} + {a \overline {c}} + {c \overline {d}}$$

AND - OR. Take DeMorgan's. $$(\overline{\overline {b} \overline {c}}) (\overline{a \overline {c}}) (\overline {c \overline {d}})$$

NAND - AND. Take DeMorgan's on terms. $$(b + c) (\overline{a} + c) (\overline {c}+ d)$$

OR - AND. Take DeMorgan's. $$\overline{\overline{(b + c)} + \overline{(\overline{a} + c)} + \overline{(\overline {c}+ d)}}$$

NOR - NOR.

Your answer is just as valid as the textbook because you used the Don't Cares in a different way.

Edit... The textbook solution is not minimal. They attempt to include all Don't Cares. This makes yours better (less gates/connections).

$$(\overline {c} + \overline {d})(a+\overline {b}+ c)$$ which makes the answer: $$\overline{\overline{(\overline {c} + \overline {d})}+\overline{(a+\overline {b}+c)}}$$

(a↓¬b↓c)↓(¬c↓¬d)