Combinational Logic Design

Discussion in 'Homework Help' started by Zaraphrax, Mar 21, 2009.

  1. Zaraphrax

    Thread Starter Active Member

    Mar 21, 2009
    47
    3
    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

    [​IMG]

    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. :)
     
  2. hgmjr

    Moderator

    Jan 28, 2005
    9,030
    214
    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
     
  3. Zaraphrax

    Thread Starter Active Member

    Mar 21, 2009
    47
    3
    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?
     
  4. hgmjr

    Moderator

    Jan 28, 2005
    9,030
    214
    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
     
  5. Zaraphrax

    Thread Starter Active Member

    Mar 21, 2009
    47
    3
    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.
     
  6. hgmjr

    Moderator

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

    hgmjr
     
  7. Ratch

    New Member

    Mar 20, 2007
    1,068
    3
    Zaraphrax,

    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: Mar 21, 2009
  8. Zaraphrax

    Thread Starter Active Member

    Mar 21, 2009
    47
    3
    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.
     
  9. Zaraphrax

    Thread Starter Active Member

    Mar 21, 2009
    47
    3
    *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?

    [​IMG]
     
  10. Zaraphrax

    Thread Starter Active Member

    Mar 21, 2009
    47
    3
    Disregard that. I am a giddy goat. I've redesigned the circuit, all is well. See, this is what happens when I design logic circuits at 2am....
     
Loading...