Aufbauend auf Bobs Antwort und Ihrer Frage zu Gleichungen: Das Grundkonzept, an das Sie sich erinnern sollten, ist der Satz von DeMorgen. Verwenden von + für ODER, * für UND und ~ für NICHT,
~ (a + b) = (~ a * ~ b)
~ (a * b) = ( ~ a + ~ b)
Mit anderen Worten, der Ausgang eines NOR-Gatters entspricht dem Ausgang eines UND-Gatters mit invertierten Eingängen. Und umgekehrt: Der Ausgang eines NAND-Gatters entspricht dem Ausgang eines ODER-Gatters mit invertierten Eingängen.
Wenn Sie die Inversionen alle auf eine Seite verschieben, erhalten Sie:
(a + b) = ~ (~ a * ~ b)
(a * b) = ~ (~ a + ~ b)
Mit anderen Worten, ein ODER-Gatter entspricht einem NAND-Gatter mit invertierten Eingängen, und ein UND-Gatter entspricht einem ODER-Gatter mit invertierten Eingängen.
Der zu realisierende Trick besteht darin, dass Sie die "Blasen" verschieben und den Satz von DeMorgen mit implementieren können das Schema. Ich habe gehört, dass dies "das Blasenspiel" genannt wird. Die Idee ist, herauszufinden, welche Funktion Sie mit nur "positiver Logik" benötigen, indem Sie ANDs und ORs verwenden. Spielen Sie dann das Blasenspiel und machen Sie alle NANDs und NORs mit Blasen an den Eingängen. Bewegen Sie dann die Blasen entlang der Linien (zwei auf einer Linie abbrechen), um einfache NANDs und NORs zu erstellen. Manchmal brauchen Sie auch hier oder da einen zusätzlichen Wechselrichter.
Das Blasenspiel hat vier Regeln:
1) Sie können ANDs oder ORs in (N) ANDs und (N) ORs mit Blasen an allen Terminals ändern.2) Sie können eine Blase "schieben" vom Ausgang zurück zu den Eingängen, wodurch alle invertiert werden.3) Sie können Blasen von allen Eingängen zum Ausgang "schieben" und den Ausgang invertieren.4) Zwei Blasen in einer Zeile werden abgebrochen.
Hier ist Ein Beispiel.
Wenn wir nur das Ausgangsgatter ändern, können wir ein oder zwei Schritte speichern ...
Prost.