# 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? – Eugene Sh. Dec 14 '15 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. – Eugene Sh. Dec 14 '15 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 Dec 14 '15 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? – Eugene Sh. Dec 14 '15 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 Dec 14 '15 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)