0
\$\begingroup\$

Background: I'm teaching myself computer architecture because I do not have a technical degree and want to learn this even though my finances won't ever allow me to have a formal education. I am doing all the problems in a book, but I ran into one problem where the problem seems too complicated for me. A karnaugh map won't work here since it has 5 inputs rather than 4. Also, a truth table seems a bit cumbersome since 5 bits means 32 entries.

Question: Could someone show me how to solve this problem using the theorems of boolean algebra? and logically explain how it works? I have spent many hours trying to simplify this problem. I'm sure I'll be able to build the circuit once I determine how to simplify the algebra.

Problem:

// ` = NOT
ABC + ABD + ABE + ACD + ACE + (A+D+E)` + B`C`D + B`C`E + B`D`E` + C`D`E`

enter image description here

\$\endgroup\$
  • \$\begingroup\$ Do you have a book on the topic? Do you have any web resources that you are using to self-educate? If so, could you list what you are using right now to teach yourself? That might help a lot. And yes, you can use more terms than just 4 with Karnaugh maps with some added mental flexibility. \$\endgroup\$ – jonk Apr 18 '19 at 17:16
  • 1
    \$\begingroup\$ This is a question you can solve on your own. Googled for "5 input karnaugh map" and clicked images. The first one up was good. sub.allaboutcircuits.com/images/14150.png \$\endgroup\$ – scorpdaddy Apr 18 '19 at 17:18
  • \$\begingroup\$ @scorpdaddy Thank you I will use that to check my answer. I still need to figure out how to do this the algebra way \$\endgroup\$ – Goku Apr 18 '19 at 20:09
1
\$\begingroup\$

Let's start with a)for simplicity

a) y= bc + a'b'c' +bc'
//Ok, this is a boolean logic that could be simplified as it's elements (a,b,c) are repeated in many terms, I'm not sure, but let's try to short it to what's only essential for this boolean function to work.

//first, I'll check it on this tool online

//https://www.dcode.fr/boolean-expressions-calculator // function (a) is entered like this (bc+!a!b!c+b!c)

// the answer appears to be y = ( !a * !c) + b

// which is exactly what I got by hand (In some cases, correct answer has many forms).

//How I got this answer by hand?

(a) Y= bc+a'b'c'+bc'

= b(c+c')+a'b'c'

// you should know that c+c' gives 1 (check with truth table 1+(1)' =1 or 0 + (0)'=0+1=1 . //Also note that, cc' (C*C') gives 0. (check with truth table all possible values 0*1 or 1*0. Always gives zero //Let's continue =b(1)+a'b'c'=b+a'b'c'=b'.(abc)'

//converting the sign of operation from + to * and dashing or putting prime or bar sign on operands.

This is called De Morgan's law or therom, could be proven but used here directly.

Now,

y=b'.(a+b+c)

// De Morgan worked for the three operands here too.

y= b'a +b'b+b'c =b'a +0+b'c=b'a+b'c= b'(a+c)=b+(a+c)'=b+(a'*c')

final answer is y =b+(a'*c')

which looks like what the tool produced y = ( !a * !c) + b

you can handle (b) now! Great!

(I've solved (c) by hand but it's too much to write (i.e. too much to read) you can get the correct answer directly using the tool anyway, but I understand you need the HOW)

I'll give you the hints

(c)

1-arrange the terms such that those with (ab,ac,d'e',b'c') are together to take common factors out of them.

//you can notice the d+e in are appearing a lot, let's try to take it as a factor.

2-the term d'e'(a'+b'+c') will be (d+e)'(abc) = (d+e)+(abc)

and the term ab(c+d+e) => abc + ab(d+e)

3- take (d+e) as a common factor from the whole function

4-the term that has (ab+ac+1+......) // the +1 will make this bracket yield a 1 whatever the other terms in the brackets are. So replace this bracket by multiplying by 1.

5- the term abc+abc=2abc => which is abc // abc=2abc (can you guess why?)

and there you go the final answer is .....

Look, you only learn to simplify like this by practising tons of examples, I'll leave this one to you. you can plug this function in the tool above to get the answer right away if you want to.

I hope that helped. :D

This is my first answer on SE, So excuse me if I made any mistakes.

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ This all makes sense, however, how do I know which direction to go in. For instance, in a), once we get to b'(a+c), how/why do we know that we need to keep going and use demorgans and make b+(a'c')? Also how do you know when to make a term into (a+b)' rather than a'b' \$\endgroup\$ – Goku Apr 18 '19 at 21:11
  • \$\begingroup\$ It's the SENSE you get by solving many. But here are some guidelines: notice repetition, remember we are trying to remove the unnecessary repetition. Simplification is what distinct students from one another actually, more experienced students know what is the simpliest form. Solve more, you will enjoy it! \$\endgroup\$ – Ramy Rabie Apr 18 '19 at 23:44
  • \$\begingroup\$ Also, How did you go from b+a'b'c' to b'.(a+b+c) in problem A \$\endgroup\$ – Goku Apr 19 '19 at 22:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.