Different types of Functions
Until now we've seen functions in the likes of these: AB' + B'C
As in boolean algebra, we have only two types of functions that we can directly work with: summation of products or multiplication of sums. In other words, boolean algebra can have either of these types of looks:
Code: Select all
- AB + BC: a summation of products
- (A+B) * (B+C): a multiplication of sums.like this function over here:
Code: Select all
(A(B+C) + (A+B)' + (AB + ABC) * (A+B')'Properties
- Associative:
Example:
Code: Select all
(A+B)+C = A+(B+C) = A+B+C
(AB)C = A(BC) = ABC- Commutative:
Example:
Code: Select all
A+B = B+A
A*B = B*Acorrect order if you want to get the minterms or maxterms out of a function (we'll see that in another chapter).
- Distributive:
Example:
Code: Select all
A(B+C) = AB + AC
A+(BC) = (A+B) * (A+C)- Idempotence:
Example:
Code: Select all
A+A = A
AA = A
A'A' = A'Let's take into consideration that A = 1, if we have A+A, then we have 1 + 1, or 1 OR 1, which is 1.
Same happens with AND: AA, if A = 1, then: 1*1 = 1 AND 1 = 1
Same goes if A = 0.
- Involution:
Example:
Code: Select all
A'' = A
(A+B)'' = (A+B)You may be wondering if there is something more to this than just simplification, there is, this property is very useful for implementing boolean functions using NAND or NOR, which are universal gates and are cheaper to make because you are using the same gates for the entire function rather than different gates, but we'll get to that on another part of the tutorial as we still don't even know how to implement boolean functions using basic gates.
- Absorption:
Example:
Code: Select all
A+AB = A
AB+ABC = AB
A+A'B = A+B
A'B' + A'B'C = A'B' + CHere's an example of why this works, imagine this function: A + AB
We give A the value 1 and B the Value 0:
Code: Select all
A + AB = 1 + (1*0) = 1 + 0 = 1
||
A + B = 1 + 0 = 1Example:
Code: Select all
A+1 = 1
A*0 = 0
A*A' = 0
A+A' = 1- DeMorgam's Theorem:
Example:
Code: Select all
(A+B)' = A'B'
(A*B)' = A'+B'Code: Select all
(A*B)' = (1*0)' = (0)' = 1
(A*B)' = A'+B' = 1' + 0' = 0 + 1 = 1Code: Select all
(A+B)' = (1+0)' = (1)' = 0
(A+B)' = A' * B' = 1' * 0' = 0 * 1 = 0Code: Select all
(A+B')' = A' * B'' = A' * BNow that we know all important properties of boolean algebra we're going to my initial plan: use them to simplify a complex function that, at first glance, can't be worked with to make it easier to handle.
Do you remember the function I showed earlier that wasn't in any standard form and we couldn't directly work with?
this one:
Code: Select all
(A(B+C) + (A+B)' + (AB + ABC) * (A+B')'First thing I notice is how the function will be a summation of products, it'll be in the form: A + B + C + .....
This means that the brackets will somehow turn into products, so I will work with them separately.
- Let's start with the first one: (A(B+C), we can use the distributive property: AB+AC
- That was easy, now lets go to the next one: (A+B)'
the first thing I notice is that everything is negated, this means I can apply DeMorgam's theorem and turn that into this:
A'B'
- Now that's done with, let's see the other one: (AB + ABC)
this one has to ways to be done: we can use associative and end up with this: AB + ABC
but then, we also know that the whole bracket is multiplied with (A+B')', so associative won't work here.
Is there anything else that can be done? at this point if you haven't figured it out you can simply leave it like that, but
there is one thing you can do: absorption. The end result would be: (AB + C)
If you don't do this it's ok, in the end the function will still look standard, but it won't be simplified to the max,
but we don't want to simplify it, we want to make it look standard, so that we can then simplify it
using an automated method called Karnaugh, we might or we might not get to see this, depends on the overall reviews
of this tutorials.
- Overall the function is starting to look like this:
Code: Select all
AB+AC + A'B' + (AB+C) * (A+B')'First thing I notice is that we can apply DeMorgam's theorem again to turn that unwanted OR into an AND: A' * B''
Now that I've applied the theorem, I notice that B is double negated, so I use idempotence: A' * B
- The function has resulted in:
Code: Select all
AB+AC + A'B' + (AB+C) * A'Bmighty look could confuse you and you could end up banging your head on how to solve that, but it's quite simple
if you remember one of the first two properties: distributive, remember? A(B+C) = AB+AC. Using this we get that:
Code: Select all
(AB+C) * A'B = A'BAB + A'BC- In the end, the entire function becomes:
Code: Select all
AB+AC + A'B' + A'BCAs an exercise, I want you to simplify the following functions into a standard form:
Code: Select all
- (A(B'C + BC')) + CD'B
- (A + B')' + (CD)
- ((A'+B)*(C+D)') + (A + B)'Next: viewtopic.php?f=37&t=33566
