Combinational Logic Design

Zaraphrax

Joined Mar 21, 2009
47
G'day there guys,

I'm currently working on a project for my course. I have to design a logic system that when a 4-bit binary input is entered, the circuit produces a HIGH (logic 1) output under the following cirumstances:

- The input is less than or equal to 2 (decimal)
- The input is greater than or equal to 10 (decimal)

I'd really like some feedback to make sure that I'm on the right track.

Here is what I have so far:

1) Truth Table From this, I can deduce the following Boolean logic functions. I'm going to use "*" to denote the NOT operator.

A*B*C*D*
A*B*C*D
A*B*CD*
AB*CD*
ABC*D*
ABC*D
ABCD*
ABCD

Righto, so we can assume the Output = 1 if

A*B*C*D* + A*B*C*D + A*B*CD* + AB*CD* + ABC*D* + ABC*D + ABCD* + ABCD

Now, I have to simplify this expression as much as possible. Then I have to implement the design using NAND gates only.

I can use any number of the following Integrated Circuits:

- 4 x 2 Input NANDs
- 3 x 3 Input NANDs
- 2 x 4 Input NANDs

So, before I work on simplifying all the expression, am I on the right track? Thanks. hgmjr

Joined Jan 28, 2005
9,029
A*B*C*D*
A*B*C*D
A*B*CD*
AB*CD*
ABC*D*

AB*CD YOU OMITTED THIS TERM

ABC*D
ABCD*
ABCD
Your approach deals with the terms that are present (yields a "1"). This is a positive logic approach and contains 9 terms. You can also look at a solution that involves all the terms that are absent (yields a "0"). This is a negative logic approach and contains 7 terms.

hgmjr

Zaraphrax

Joined Mar 21, 2009
47
Your approach deals with the terms that are present (yields a "1"). This is a positive logic approach and contains 9 terms. You can also look at a solution that involves all the terms that are absent (yields a "0"). This is a negative logic approach and contains 7 terms.

hgmjr
Oops, you're right. I missed that one out. Thanks for pointing that out. Which do you think would be easier to simplify and implement given the outlines I specified above?

hgmjr

Joined Jan 28, 2005
9,029
I suggest you tackle the problem both ways and see for yourself which one is the easier. It is a bit more involved to do this but you will get a first-hand feel for the difference and it will stick with you the rest of your career in electronics.

hgmjr

Zaraphrax

Joined Mar 21, 2009
47
Ok, I attempted to simplify both the positive logic and negative logic expressions. Not sure if I've done it right (I'm new to this Boolean algebra stuff, only started this week). I don't see yet how I can implement this under the constraints outline in my OP.

But, here's my working. Nitpick as necessary please. Excuse the mess.

Click

I can use a Karnaugh map if necessary, but my lecturer says to always try Boolean algebra first.

hgmjr

Joined Jan 28, 2005
9,029
See if reviewing the material in the AAC ebook on Boolean Algebra will get you further along.

hgmjr

Ratch

Joined Mar 20, 2007
1,068
Zaraphrax,

I can use a Karnaugh map if necessary, but my lecturer says to always try Boolean algebra first.
I hope your lecturer is not advocating using Boolean algebra as a practical method of reducing a complicated Boolean expression. That would really be folly, because is is extremely difficult to know what terms to add and combine, especially for a beginner. I hope to show you what I mean.

The minterms are (0,1,2,10,11,12,13,14,15). Plotting these on a K-map, we immediately get a answer of AB+AC+A'B'C'+A'B'D' or B'CD' instead of A'B'D'. As you can see, that is not the answer you got. So lets do it the hard way using what the K-map shows. Grouping the minterms as shown from the K-map we get:

(10,11,14,15) + (12,13,14,15) + (0,1) + (0,2) or (2,10) instead of (0,2) .

Notice that this covers all the minterms which are present. Now we simplify.

(10,11,14,15) = AB'CD'+AB'CD+ABCD'+ABCD = AC(B'D'+B'D+BD'+BD) = AC(B(D+D')+B'(D+D'))= AC(B+B')=AC

(12,13,14,15) = ABC'D'+ABC'D+ABCD'+ABCD = AB(C'D'+C'D+CD'+CD) = AB

(0,1) = A'B'C'D'+A'B'C'D = A'B'C'

(0,2) = A'B'C'D'+A'B'CD' = A'B'D' or we can cover minterm 2 by the following term instead.

(2,10) = A'B'CD'+AB'CD' = B'CD'

Now, how would you know how to group the terms and which terms to duplicate without looking at a K-map first? And if you want to use negative logic, just simplify the minterms on the K-map that you did not mark for positive logic. So I hope I proved to you that you should ALWAYS use a K-map or a tabulation method instead of Boolean algebra to simplify Boolean expressions.

Ratch

Last edited:

Zaraphrax

Joined Mar 21, 2009
47
Zaraphrax,

I hope your lecturer is not avocating using Boolean algebra as a practical method of reducing a complicated Boolean expression. That would really be folly, because is is extremely difficult to know what terms to add and combine, especially for a beginner. I hope to show you what I mean.

The minterms are (0,1,2,10,11,12,13,14,15). Plotting these on a K-map, we immediately get a answer of AB+AC+A'B'C'+A'B'D' or B'CD' instead of A'B'D'. As you can see, that is not the answer you got. So lets do it the hard way using what the K-map shows. Grouping the minterms as shown from the K-map we get:

(10,11,14,15) + (12,13,14,15) + (0,1) + (0,2) or (2,10) instead of (0,2) .

Notice that this covers all the minterms which are present. Now we simplify.

(10,11,14,15) = AB'CD'+AB'CD+ABCD'+ABCD = AC(B'D'+B'D+BD'+BD) = AC(B(D+D')+B'(D+D'))= AC(B+B')=AC

(12,13,14,15) = ABC'D'+ABC'D+ABCD'+ABCD = AB(C'D'+C'D+CD'+CD) = AB

(0,1) = A'B'C'D'+A'B'C'D = A'B'C'

(0,2) = A'B'C'D'+A'B'CD' = A'B'D' or we can cover minterm 2 by the following term instead.

(2,10) = A'B'CD'+AB'CD' = B'CD'

Now, how would you know how to group the terms and which terms to duplicate without looking at a K-map first? And if you want to use negative logic, just simplify the minterms on the K-map that you did not mark for positive logic. So I hope I proved to you that you should ALWAYS use a K-map or a tabulation method instead of Boolean algebra to simplify Boolean expressions.

Ratch
Oh wow. Thanks. Yeah, he definitely said to only use a K-Map if the algebra is too tricky, or the questions specifies to do so. I'll have a try at doing what use suggested later. Thanks.

Zaraphrax

Joined Mar 21, 2009
47
*bump*

Okay, I checked all the numbers that someone else posted above and they seem right to me (according to the Karnaugh map), but for some reason my circuit (when I map it) doesn't appear to work. Have I made a stupid blunder, or is there something fundamentally wrong?  