Hallo zusammen, ich habe ein Verständnis problem. Die Gesetze von De Morgan besagen ja nichts anderes als, das eine Schaltung mit NAND oder NOR realisiert werden kann. Also: (A*B)nicht = (A nicht)+(B nicht) und umgekehrt. Wenn ich nun z.B. folgenden Term umwandeln möchte: x = (a nicht)*(b nicht) + A*B + C + D dann muss nach der doppelten negation aus UND wieder ein ODER werden. Laut wiki ist dann alles nur mehr UND (siehe Link)?? Link:"https://de.wikibooks.org/wiki/Digitale_Schaltungstechnik/_Realisierung_mit_NAND"
DeMorgan besagt das ein eingangsinvertiertes UND einem ausgangsinvertiertem ODER gleicht, ergo ein UND mit Invertierung am Ein- und Ausgang entspricht einem ODER
DeMorgan besagt, dass Du aus ODER UND und aus UND ODER machen kannst, genau dann wenn Du den gesamten Ausdruck und die einzelnen Terme negierst. Anschließend kannst Du das Gesetz auch auf die Teilterme anwenden. x = ~a*~b + A*B + C + D = ~(~(~a*~b) * ~(A*B) * ~C * ~D) | DeMorgan auf den Gesamtausdruck = ~((a+b) * (~A+~B) * ~C * ~D) | DeMorgan auf den Einzeltermen
Helpme91 schrieb: > x = (a nicht)*(b nicht) + A*B + C + D > > dann muss nach der doppelten negation aus UND wieder ein ODER werden. > Laut wiki ist dann alles nur mehr UND (siehe Link)?? Der Term ist zusammengesetzt und zuvorderst darfst du auch die Zeichen & und | verwenden (oder ^ und u). Ansonsten schlägt noch die Reihenfolge der Operatoren zu, demnach muss & zuerst gemacht werden und dann ist die Reihenfolge der Klammern. !a | !b & c muss ja nicht vollständig umgewandelt werden, !(a & b) & c genügt vollauf.
Ich verstehe einfach nicht, was genau die doppelte Negation macht. Bei der doppelten Negation gibt es doch zwei Striche, was macht welcher nun? Wenn ich nun diesen Ausdruck habe: x = ~a*~b + A*B + C + D und dann doppelt Negiere, was verändert der erste Strich und was der zweite an der Funktion? Genau hier stehe ich an, da ich nicht verstehe welcher Strich nun was in der Funktion ändert. MfG & Danke!!
@Helpme91 (Gast) >Ich verstehe einfach nicht, was genau die doppelte Negation macht. Sie ändert die Gleichung ohne das Ergebnis zu ändern ;-) >Bei der doppelten Negation gibt es doch zwei Striche, was macht welcher >nun? >Wenn ich nun diesen Ausdruck habe: >x = ~a*~b + A*B + C + D >und dann doppelt Negiere, was verändert der erste Strich und was der >zweite an der Funktion?
1 | x = ~a*~b + A*B + C + D // Ausgangsgleichung |
2 | |
3 | ~~x =~~( ~a*~b + A*B + C + D) // Beide Seiten doppelt negieren |
4 | |
5 | x =~( ~(~a*~b) * ~(A*B) * ~C * ~D) // nur eine Invertierung nach Demorgan auflösen, Eingänge negieren, aus ODER (+) wird UND (*), doppelte Negation von X hebt sich auf |
Am Ende besteht die gesamte Schaltung nur aus NAND-Verknüpfungen und kann somit mit nur einem Gatter- bzw. IC-Typ aufgebaut werden.
Helpme91 schrieb: > und dann doppelt Negiere, was verändert der erste Strich und was der > zweite an der Funktion? Naja doppelte Negation ist ein bisschen schwammig. Es ist kein !(!a), um a auszudrücken. Aber !a & !b ist gleichbedeutend mit !(a | b), malst du die Wertetabelle für beide Fälle hin. Das Ziel ist Klammern streichen (weil alles & oder | ist) oder nur mit einer Schaltung arbeiten zu können. Mir gefällt der Teil mit den Klammern besser, weil es das Potenzial zur Vereinfachung bietet. Ein | hat ja viel mehr wahre Ausgänge und damit lässt sich schneller entscheiden (Breite). Ein & hat viel weniger wahre Ausgänge und schränkt viel besser ein (Tiefe).
Warum wird aus diesem UND kein ODER? (~a*~b) * ~(A*B) => (~a+~b) * ~(A+B) ?? Danke für eure Hilfe!!
@Helpme91 (Gast) >Warum wird aus diesem UND kein ODER? >(~a*~b) * ~(A*B) => (~a+~b) * ~(A+B) ?? Weil das was du da aufgeschrieben hast schlicht falsch ist ;-) DeMOrgan geht NICHT verkettet bis in Teilterme! Das geht NUR auf der oberen Ebene, die Teiltermen muss man dann wieder einzeln betrachten! (~a*~b) * ~(A*B) => ~(~a*~b) + (A*B) // DeMorgen für die Gesamtgleichung, Teilterme bleiben im inneren konstant! (~a*~b) * ~(A*B) => (a+b) * ~(~A+~B) // DeMorgen nur für die Teilterme (~a*~b) * ~(A*B) => ~(a+b) + (~A+~B) // DeMorgen nur für die Teilterme und Gesamtterm
Hier ein Beispiel was mit NOR realisiert werden soll: x = (a+b) a (~b+~c) *d //Doppelt Negiert x = ~~((a+b) a (~b+~c) *d) //DeMorgan x = ~(~(a+b) + ~a + ~(~b+~c) + ~d) //Lösung Wenn ich das Richtig verstanden habe, dann wird von der doppelten Negation nur der erste Strich verwendet um mit DeMorgan eine negation durchzuführen. Der zweite Strich sagt nur, das der gesamte Ausdruck nochmal negiert wird. Stimmt das so? MfG
@ Helpme91 (Gast)
>Hier ein Beispiel was mit NOR realisiert werden soll:
Die Autoformatierung hat dein * gefressen. Das kann man verhindern, wenn
man den Text mit [ pre ] [ /pre ] (ohne Leerzeichen) einfaßt.
1 | x = (a+b) * a * (~b+~c) * d // Ausgangsgleichung |
2 | |
3 | x = ~~((a+b) * a * (~b+~c) * d) // Doppelt negiert |
4 | |
5 | x = ~(~(a+b) + ~a + ~(~b+~c) + ~d) // Lösung, eine Negation nach DeMorgan aufgelöst |
>Wenn ich das Richtig verstanden habe, dann wird von der doppelten >Negation nur der erste Strich verwendet um mit DeMorgan eine negation >durchzuführen. Ja. >Der zweite Strich sagt nur, das der gesamte Ausdruck nochmal negiert >wird. Ja.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.