De Morgan's Theorem Help

Discussion in 'Homework Help' started by wordy007, Jan 14, 2010.

  1. wordy007

    Thread Starter New Member

    Dec 30, 2009
    I need to convert the following expression to use NAND gates only by using De Morgan's Theroem. I have looked at several threads and still don't quite understand the steps taken to do this.

    I have given it a go below by first inverting experessions, then the whole expresssion and then changing or's to and's.

    Original Expression: (A'BC'D')+AB'D'+AB(C'D+CD')
    Invert individually: (A'BC'D')'+A'BD+A'B'(C'D+CD')'
    Invert whole expression: (A'BC'D')'+A'BD+A'B'(C'D+CD')''
    Change or's to and's: (A'BC'D')'A'BDA'B'(C'DCD')''

    Well that is my attempt, im almost certain that i've gone wrong as i don't understand the following:
    1. What to invert (i've inverted the whole inputs in brackets and then inverted inputs that weren't and took off the inverter that was there on inputs if they aren't in brackets.

    2. I needed to get the or's to and's and didn't understand how his was done so i simply just changed it.

    Any help is appreciated. If it helps it will have to later be put into a logic gate diagram which i should have no problems at.

  2. wordy007

    Thread Starter New Member

    Dec 30, 2009
    After some more reading and attempts at this i now have:


    However when i do the truth table it doesn't match up to what i should have so i must have gone wrong somewhere again.

    Steps i did to get to above was to only apply de morgan's to the or gates as i realised i could do that. Then i converted the xor to another format as well.
  3. relay

    New Member

    Jan 15, 2010
    It looks like De Morgan was not applied correctly above. Starting with this:


    recognize that it is equivalent to the following with parenthesis explicitly shown:

    ( (A'BC'D') + (AB'D') ) + (AB(C'D+CD'))

    Apply De Morgan to the two top-most OR's above. You can do this in two steps (apply X+Y = (X'Y')' twice) or, if you're brave enough, all at once (X+Y+Z=(X'Y'Z')'):

    ( (A'BC'D')'(AB'D')'(AB(C'D+CD'))' )'

    Note how AB'D' changes to (AB'D')' not A'B'D.

    Now, a series of AND's in the form (XYZ) can be converted to NAND's with De Morgan. Hint: (XYZ) = (((XY)Z)')'.

    In fact, all Boolean operators can be converted to NANDs:

    This site also has a nice page on De Morgan: