OR / AND Gatter zu NAND?
Ich soll eine Schlatungsgleichung so umformen, dass nur NAND Gatter drin vorkommen. OR zu NAND geht ja mit De Morgan, aber AND zu NAND? Sollte man dann einfach doppelte Negation verwenden?
Und dann nur mit NOR Gattern...
2 Antworten
Verknüpfung | Umsetzung mit NAND | Umsetzung mit NOR
------------+----------------------------+------------------------
x OR y | (x NAND x) NAND (y NAND y) | (x NOR y) NOR (x NOR y)
x AND y | (x NAND y) NAND (x NAND y) | (x NOR x) NOR (y NOR y)
Siehe beispielsweise auch:
nicht (x und y)
... ist aber...
(nicht x) oder (nicht y)
... und nicht äquivalent zu...
x oder y
Oder denkst du wirklich, dass OR und NAND äquivalent sind?
(Denn [nicht(x und y)] ist ja quasi [x NAND y])
(x NAND x) NAND (y NAND y)
[x NAND x ist äquivalent zu NOT x]
(NOT x) NAND (NOT y)
[x NAND y ist äquivalent zu NOT (x AND y)]
NOT ((NOT x) AND (NOT y))
[de Morgan: (NOT x) AND (NOT y) ist äquivalent zu NOT (x OR y) ]
NOT (NOT (x OR y))
[NOT (NOT x) ist äquivalent zu x]
x OR y
A NAND A = ! A
Für NOR gilt das gleiche. Du mußt also nur beide Eingänge mit dem zu negierenden Wert belegen, das war es schon.
Stimmt, aber wie komme ich denn von z.B.
a und b und c auf eine NAND / NOR Verknüpfung?
Naja, A AND B = !! (A AND B) = !(A NAND B). Wer fault ist lässt das Nicht einfach da stehen, weil die Transformation in der Synthese klar ist, oder Du schreibst:
(A NAND B) NAND (A NAND B)
Beim Wechsel zum NOR mußt Du natürlich die Inversion der Literale berücksichtigen, ist aber in letzter Konsequenz de Morgan, wie Du bereits erkannt hast.
A AND B = !!(A AND B)=!(!A OR !B)=!A NOR !B = (A NOR A) NOR (B NOR B) - passt das soweit, habe ich keinen Schusseligkeitsfehler gemacht?
ja, aber was wenn ich 3 oder sogar 4 Eingänge hab?
((A NAND B) NAND (A NAND B)) AND C
Das wird ja mega viel sonst.
Gut erkannt, im schlimmsten Fall wird das auch entsprechend viel - wo siehst Du das Problem?
Das Problem ist die Schreibarbeit :)
aber z.b or geht viel einfacher:
x or y = nicht(x und y)
Wofür also nicht(x und x) ???